JavaScript正規表現は簡単に勉強します.
15575 ワード
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>JS </title>
<script type="text/javascript">
(function(){
/*
RegExp , 。
1: /pattern/attributes
2: RegExp :new RegExp(pattern, attributes);
3:
(1) pattern , 。
(2) attributes , "g"、"i" "m",
、 。
ECMAScript , m 。
★ pattern , , 。★
4:
RegExp , 。
pattern ,
RegExp() RegExp RegExp 。
new , RegExp() ,
new ,
pattern , pattern, RegExp 。
5:
(1)SyntaxError - pattern ,
attributes "g"、"i" "m" , 。
(2)TypeError - pattern RegExp ,
attributes , 。
6. :
★ new RegExp() , , “ ”
eg:
var reg = /\d+/;
var reg = new RegExp("\\d+"); //
*/
/*
★1.test() :test() .
:RegExpObject.test(string)
string RegExpObject , true, false。
eg:
var reg = /\d+/; //
var value1 = "123";
var value2 = "abc";
var v3 = "a2c";
alert(reg.test(value1)); //true
alert(reg.test(value2)); //false
alert(reg.test(v3)); //true
*/
/*
2.^n : ^n n 。
eg:
var reg = /^\d+/; //
var v1 = "123abc";
var v2 = "abc123";
alert(reg.test(v1)); //true
alert(reg.test(v2)); //false
*/
/*
3.n$: n$ n 。
eg:
var reg = /\d+$/; //
var v1 = "abc123";
var v2 = "123abc";
alert(reg.test(v1)); //true
alert(reg.test(v2)); //false
*/
/*
4. 2,3
var reg = /^\d+$/; //
var v1 = "abc123";
var v2 = "123abc";
var v3 = "123";
alert(reg.test(v1)); //false
alert(reg.test(v2)); //false
alert(reg.test(v3)); //true
//★ :JS , :var reg = /^xxxxxx$/;
//^ ,$
*/
/*
5.String match() :
(1)match() , 。
indexOf() lastIndexOf(), , 。
(2) :★
stringObject.match(searchvalue)
stringObject.match(regexp)
(3)
searchvalue 。 。
regexp 。 RegExp 。
RegExp ,
RegExp ,
RegExp 。
(4)
。 regexp g。
(5) :
regexp g, match() stringObject 。
, match() null
eg:
var str = "1 plus 2 equals 3";
var str1 = "a plus b equals ab";
var result = str.match(/\d+/g); //
var result1 = str.match(/\d+/); // ,
var result2 = str1.match(/\d+/); // str1 , null
alert(result); //1,2,3
alert(result1); // 1
alert(result2); // null
var str3 = "Hello , World, World is not mine";
var r1 = str3.match("world"); // world null
var r2 = str3.match("World"); //
var r3 = str3.match(/World/g); //
var r4 = str3.match(/World/);
var r5 = str3.match(/world/gi); // ,
alert(r1); //null
alert(r2); //World
alert(r3); //World,World
alert(r4); //World ,
alert(r5); //World,World ,
var str4 = "@Jerry @Tom @Alex Hello" ;
var re1 = str4.match(/@\w+\s/gim); // @ , ,
alert(re1); //@Jerry ,@Tom ,@Alex
*/
/*
6.
(1):[abc] 。
eg:
var str = "I love a ,but I like b, c is my wife";
var r1 = str.match(/[abc]/g); // abc
alert(r1); // a,b,b,c
var r2 = str.match(/[a-h]/g); // [a-h]
alert(r2); // e,a,b,e,b,c,f,e
*/
/*
(2):[^abc] 。
eg:
var str = "Is this all there is?";
var r1 = str.match(/[^a-h]/g); // [a-h]
alert(r1); //I,s, ,t,i,s, ,l,l, ,t,r, ,i,s,?
*/
/*
(3):
[0-9] 0 9 。
[a-z] a z 。
[A-Z] A Z 。
[A-z] A z 。
[adgk] 。
[^adgk] 。
(red|blue|green) 。
var str = "Hello,Tom";
var str1 = "Hello,Jerry";
var str2 = "Hello,Jakc";
var reg = /^Hello,(Tom|Alex|Jerry)$/; // Tom Alex, Jerry
alert(reg.test(str)); //true
alert(reg.test(str1)); //true
alert(reg.test(str2)); //false
*/
/*
7.★:
(1):. , 。
eg:
var str = "That's hot!";
alert(str.match(/h.t/g)); // hat,hot
*/
/*
(2):\w 。
:a-z、A-Z、0-9, 。
eg:
var str = "Hello World ,1999 !!";
alert(str.match(/\w/g)); //H,e,l,l,o,W,o,r,l,d,1,9,9,9
*/
/*
(3):\W 。
:a-z、A-Z、0-9, 。
var str = "Hello World ,1999 !!";
alert(str.match(/\W/g)); // , ,,, ,!,!
*/
/*
(4):\d 。
var str = "Hello World ,1999 !!";
alert(str.match(/\d/g)); // 1,9,9,9
*/
/*
(5):\D 。
var str = "Hello World ,1999 !!";
alert(str.match(/\D/g)); //H,e,l,l,o, ,W,o,r,l,d, ,,, ,!,!
*/
/*
(6):\s 。
var str = "Hello World ,1999 !!";
alert(str.match(/\s/g)); // , ,
*/
/*
(7):\S 。
var str = "Hello World ,1999 !!";
alert(str.match(/\S/g)); //H,e,l,l,o,W,o,r,l,d,,,1,9,9,9,!,!
*/
/*
(8):\b 。
, 。
, 。
, 。( [\b] 。)
, null。
:\b 。
:
/\bm/ "moon" 'm';
/oo\b/ "moon" 'oo', 'oo' 'n' ;
/oon\b/ "moon" 'oon', 'oon' , ;
/\w\b\w/ , 。
var str = "Hello World ,1999 !!";
var str1 = "HelloWorld ,1999 !!";
alert(str.match(/\bWo/g)); //Wo
alert(str1.match(/\bWo/g)); //null
*/
/*
8.★
n+ n 。
n* n 。
n? n 。
n{X} X n 。
n{X,Y} X Y n 。
n{X,} X n 。
n$ n 。
^n n 。
?=n n 。
?!n n 。
*/
/*
(1):n+ n 。
n* n 。
n? n 。
var str = "Hello Weiyuan2013! I love you ";
var reg = /\d+/g; //
var reg1 = /l+/g; // l
var reg2 = /lo?/g; // l 0 1 o
alert(reg.test(str)); //true
alert(reg1.test(str)); //true
alert(reg2.test(str)); //true
*/
/*
(4):
①n{X} X n 。
:n{X,} X n 。
②n{X,Y} X Y n 。
:
n{X,Y} X Y n 。
X Y 。 X < Y
③n{X,} X n 。
n{X,} X n 。
X 。
var str = "13523877794";
var reg = /7{3}/g; // 3 7
var reg1 = /7{4}/g; // 4 7
var reg2 = /7{3,4}/g; // 3 7 4 7
var reg3 = /7{2,}/g; // 2 7 , 3 7 4 。。。。。
alert(reg.test(str)); //true
alert(reg1.test(str)); //false
alert(reg2.test(str)); // true
alert(reg3.test(str)); //true
*/
/*
(5)
①?=n n 。
:?=n n
②?!n n 。
var str="Is this all there is";
alert(str.match(/is(?= all)/g)); // "all" "is" :
alert(str.match(/is(?! all)/gi)); // "all" "is" :
*/
// ---
/*
1. : :
var paramReg = /^[0-9a-zA-Z]*([a-zA-Z]+[0-9]+|[0-9]+[a-zA-Z]+)[0-9a-zA-Z]*$/;
var username = "12hanchao2013";
alert(paramReg.test(username));
*/
/*
2. Email :
var emailReg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
var email = "[email protected]";
alert(emailReg.test(email));
*/
/*
3.
//var regPhone = /^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/;
var regPhone = /^(([0+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/;
var phone = "4008-007-007";//"0427-7531992"; //"021-60825088";//"76423865";
var result = regPhone.test(phone);
alert(result);
*/
/*
4. :
var regMobile = /^1[3|4|5|6|7|8|9][0-9]{1}[0-9]{8}$/;
var mobile = "13877794164";
var result = regMobile.test(mobile);
alert(result);
*/
/*
5. :
var regQQ =/^[1-9]\d{4,8}$/;
var qq = "294851313";
var result = regQQ.test(qq);
alert(result);
*/
/*
6. MSN:
var regMsn = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
var msn = "[email protected]";
var result = regMsn.test(msn);
alert(result);
*/
/*
7. :
//var regNet = /^http:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?$/;
var regNet = /^http:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?$/;
var url = "http://game.baidu.com";
var result = regNet.test(url);
alert(result);
*/
/*
8. IP:
var checkIp = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
var ip = "192.168.25.103";
var result = checkIp.test(ip);
alert(result);
*/
})();
</script>
</head>
<body>
</body>
</html>
//replace方法の使用//var reg=/\s\*/g;
//var str=「This*is*a*test*string」
//var reult String=str.replace(reg、「-」)str文字列の「*」の代わりに「-」を使います.
//document.writeln(resultString)//This-i-s-a-test-string
学習参考ブログ:http://blog.jobbole.com/63398/