js 正規表示式

2022-08-30 06:15:12 字數 4663 閱讀 2968

js正則的兩種建立語法:

//

第一種var reg = new regexp("a");

//第二種

var pattern = /a/;

第一種方式可以傳入兩個引數,其中第乙個是匹配字串,第二個引數是乙個可選項標誌,有以下幾個引數可選:

1.i(表示忽略匹配的字母大小寫)

2.g(表示匹配全域性)

3.m(表示多行匹配)

如:

//

以第一種方式建立正規表示式

var reg = new regexp("a","i");//

以忽略字母大小寫的形式進行匹配

var reg = new regexp("a","g");//

以查詢全域性的形式進行匹配

var reg = new regexp("a","m");//

以多行查詢的形式進行匹配

//以第二種方式建立正規表示式

var pattern = /a/i;//

作用跟上面的第一句相同,以下類似

var pattern = /a/g;

var pattern = /a/m;

ps:第二個可選項標識可以組合使用。

正規表示式的相關屬性以及方法的使用

1.source:返回正規表示式模式的文字

var pattern = /a/;

console.log(pattern.source);

//"a"

2.lastindex:返回下次匹配成功的字元或字串起始位置

var pattern = /a/g;

var string = 'abcdabcdabcd';

console.log(pattern.lastindex);

//lastindex為0

pattern.test(string);

console.log(pattern.lastindex);

//lastindex為1,即為下一匹配成功(指匹配第二個a)的起始位置

pattern.test(string);

console.log(pattern.lastindex);

//lastindex為5,即為下一匹配成功(指匹配第三個a)的起始位置

pattern.test(string);

console.log(pattern.lastindex);

//lastindex為9,即為下一匹配成功的起始位置,是匹配完第三個a後的位置

pattern.test(string);

console.log(pattern.lastindex);

//lastindex為0,由於匹配不成功,lastindex的值被置為0

3.input:返回能夠匹配的最近一次字串

var pattern = /a/;

var str = '

abcdca';

pattern.test(str);

console.log(regexp.input);

//'abcdca'

var str1 = '

abc'

;pattern.test(str1);

console.log(regexp.input);

//'abc'

var str2 = 'b'

;pattern.test(str2);

console.log(regexp.input);

//'abc',因為傳入的字串匹配不成功

4.lastmatch:返回的是最後一次匹配字串的字元或字串

var str = '

abcad';

var pattern = /a/;

pattern.test(str);

console.log(regexp.lastmatch);

//'a'

5.lastparen:返回的是最後一次匹配的分組

var str = '

abcad';

var pattern = /ab/g;

pattern.test(str);

console.log(regexp.lastmatch);

//'ab'

6.leftcontext:返回的是從字串起始位置到匹配子字串位置之前的子字串

var str = '

bcacd';

var pattern = /a/;

pattern.test(str);

console.log(regexp.leftcontext);

//'bc'

7.rightcontext:返回的是從匹配子字串位置後一位到字串末尾

var str = '

bcacd';

var pattern = /a/;

pattern.test(str);

console.log(regexp.rightcontext);

//'cd'

1.exec() 此方法用於查詢的字串中相關字元,返回的是捕獲分組所構成的陣列

var str = '

abcda';

var pattern = /a/;

pattern.exec(str);

//["a"]

var pattern = /^[a-z]+(c)[a-z]+$/;

pattern.exec(str);

//["abcda", "c"]//第乙個匹配元素是整個字串,第二個則是(c)所捕獲到的分組

2.test() 此方法用於當正規表示式與字串能夠匹配成功時返回true

var str = '

bcacd';

var pattern = /b/;

pattern.test(str);

//true

var pattern = /e/;

pattern.test(str);

//false

1.match() 此方法用於返回正規表示式匹配到的子字元或者子字串

var

string = '

abcda';

var pattern = /a/;

string.match(pattern);//

["a"]

var pattern = /a/g;

string.match(pattern);//

["a","a"]

2.search() 此方法用於查詢正規表示式所匹配到的字元或者字串的位置,如果有多個匹配項,則只返回第乙個匹配項的位置

var s = '

abcda';

var p = /a/;

s.search(p);//0

var p = /a/g;

s.search(p);

//0

3.replace() 此方法用於替換字串中指定的字元或者字串,兩個引數:要替換的字串或者字元(可以是乙個查詢的正規表示式),替換字串

var s = '

abcda';

var p = /a/g;

s.replace(p,"@

");//

'@bcd@',第乙個引數可以是正規表示式

s.replace("

@","

a");//

'abcda',第乙個引數可以是字串

4.split() 此方法用於將字串用指定的字元分割成陣列並返回

var s1 = '

abc'

;s.split(

"");//

["a","b","c"]

var s2 = '

123a456';

s.split(/[a-z]+/);//

["123","456"]

遇到元字元需轉義

js正規表示式中的元字元有:( [       表示前面緊跟著的字元有n個

表示前面緊跟著的字元在n和m個之間

表示前面緊跟著的字元至少有n個

js正規表示式的貪婪量詞與惰性量詞,捕獲與非捕獲組,正向前瞻

1)在使用正則匹配字串時,一般地,當要匹配的字串為'aaabbbccc',/a+/匹配的是aaa,此為貪婪量詞(即想要匹配更多的字元),而通過在"+"號後面加上"?"可變為惰性量詞,此時只匹配字串中的第乙個a

2)一般地,當我們在正規表示式中加上乙個括號時表示括號裡的內容為要捕獲的分組,比如:/^[a-za-z]+(\d+)$/,如果在括號裡的內容前面加上"?:"時則表示此分組為非捕獲組,即在最後返回的陣列中不存在這個分組

3)關於捕獲組,在正規表示式中通過regexp訪問$1,$2,$3....$9,可以獲取第乙個,第二個...第九個捕獲組的內容

4)捕獲出現在特定字元之前的字元,只有當字元後面跟著某個特定字元才去捕獲它,相應的就有負向前瞻,表示當字元後面不跟著特定字元才去捕獲它,正向前瞻在要指定的字元前加上"?=",負向前瞻則是加上"?!"

js數字正規表示式,js小數正規表示式

js數字正規表示式,js小數正規表示式 是否為數字 僅正數 包括正整數 正小數 0 param value returns function isnumber value 是否為所有數字 正數 負數 包括整數 小數 0 param value returns function isnumberall...

JS 正規表示式

驗證數字的正規表示式集 驗證數字 0 9 驗證n位的數字 d 驗證至少n位數字 d 驗證m n位的數字 d 驗證零和非零開頭的數字 0 1 9 0 9 驗證有兩位小數的正實數 0 9 0 9 驗證有1 3位小數的正實數 0 9 0 9 驗證非零的正整數 1 9 0 9 驗證非零的負整數 1 9 0 ...

js正規表示式

用正規表示式模式在字串中執行查詢,並返回包含該查詢結果的乙個陣列。rgexp.exec str 引數rgexp 必選項。包含正規表示式模式和可用標誌的正規表示式物件。str 必選項。要在其中執行查詢的string物件或字串文字。說明如果exec方法沒有找到匹配,則它返回null。如果它找到匹配,則e...