一、正則的兩種寫法:
var re = /a/; //一般情況下都用簡寫的方式 效能好
var re = new regexp('a'); //需要傳入引數的時候用
二、轉義字元:
\n 換行\r 製表
\t 回車
\s 空格
\s 非空格
\d 數字
\d 非數字
\w 字元 ( 字母 ,數字,下劃線_ )
\w 非字元
. 任意字元
\. 真正的點
\b 獨立的部分 ( 起始,結束,空格 )
\b 獨立的部分
\1 重複的第乙個子項
\2 重複的第二個子項
三、正則的方法:
1、test:正則去匹配字串,如果匹配成功就返回真,如果匹配失敗就返回假;test的寫法 : 正則.test(字串)
var str = '374829348791';var re = /\d/;
alert( re.test( str ) );
//false 匹配失敗
2、search : 正則去匹配字串 , 如果匹配成功,就返回匹配成功的位置,如果匹配失敗就返回 -1(和字串裡面的indexof方法很像);search的寫法 : 字串.search(正則)
正則中的i:正則中預設是區分大小寫的;如果不區分大小寫的話,在正則的最後加標識 i
var str = 'abcdef';var re = /b/i;
//var re = new regexp('b','i'); //也可以寫成這種形式
alert( str.search(re) );
//true
3、match : 正則去匹配字串,如果匹配成功,就返回匹配成功的陣列,如果匹配不成功,就返回null;match的寫法 : 字串.match(正則)
正則預設:正則匹配成功就會結束,不會繼續匹配;如果想全部查詢,就要加標識 g(全域性匹配)
量詞 : 匹配不確定的位置;+ : 至少出現一次(>=1次 都會被找到)
var str1 = 'asdhfgsaghd12332slsd34';var re = /\d+/g;
alert( str1.match(re)); //[12332,34]
4、replace:正則去匹配字串,匹配成功的字元去替換成新的字串;replace的寫法 : 字串.replace(正則,新的字串)
var str = 'aaa';var re = /a+/g; //
此時'a'替換了'aaa'
str = str.replace(re,'b');
alert(str);
//'b'
四、匹配子項 : 小括號 () (還有另外乙個意思,分組操作)
var str = '2013-6-7';var re = /(\d+)(-)/g;
str = str.replace(re,function($0,$1,$2));
alert( str );
五、字元類 : 一組相似的元素 中括號的整體代表乙個字元
var str = 'abdc';var re = /a[bde]c/; //
字元類中的是「或」的關係 但是整體的位數要和字串的一致
alert( re.test(str) ); //true
排除 : ^ 如果^寫在裡面的話,就代表排除的意思
var str = 'abc';var re = /a[^bde]c/; //
取反 alert( re.test(str) ); //false
六、找出字串中最多的字元和個數:
var str = 'assssjdssskssalsssdkjsssdss';var arr = str.split('');
str = arr.sort().join('');
//alert(str);
var value = '';
var index = 0;
var re = /(\w)\1+/g;
str.replace(re,
function($0,$1)
});alert('最多的字元:'+value+',重複的次數:'+index);
七、量詞:出現的次數,常用的量詞有:
至少n次* 任意次
? 零次或一次
+ 一次或任意次
正好n次
八、去掉前後空格:^開始 $結束
var str = ' hello ';function
trim(str)
alert( '('+trim(str)+')' );
九、常用的正則例子(高階表單驗證)
匹配中文:[\u4e00-\u9fa5]行首行尾空格:^\s*|\s*$
email:^\w+@[a-z0-9]+(\.[a-z]+)$
**:[a-za-z]+://
[^\s]*
qq號:[1-9][0-9]
身份證:[1-9]\d|[1-9]\d|[1-9]\dx
JS正規表示式詳解
if patrn.exec s return false return true a za z0 9 if patrn.exec s return false return true if patrn.exec s return false return true 校驗密碼 只能輸入6 20個字母 ...
JS正規表示式詳解01
查詢符合條件的乙個字串的位置,找不到返回 1 abc search b return 1 abc search d return 1 abcabc search b g return 1 查詢符合條件的字串,並進行替換,找不到不進行替換 abcabc replace b 2 return a2cab...
js數字正規表示式,js小數正規表示式
js數字正規表示式,js小數正規表示式 是否為數字 僅正數 包括正整數 正小數 0 param value returns function isnumber value 是否為所有數字 正數 負數 包括整數 小數 0 param value returns function isnumberall...