js正規表示式詳解

2022-07-16 05:30:12 字數 2840 閱讀 1268

一、正則的兩種寫法:

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...