正則匹配 match與exec

2021-09-11 21:16:46 字數 1892 閱讀 2988

1.match是字串的方法,exec是正則物件例項的方法

var s='我的世界1234567abcdefg';

var result=s.match(/\d/);

//返回乙個陣列,陣列長度為1,包含匹配到的項,另外還有index和input屬性

console.log(result);

複製**

var s='我的世界1234567abcdefg';

var result=/\d/.exec(s);

console.log(result);//結果同string.match(reg)

複製**

2.正規表示式中沒有子表示式,且非全域性匹配(沒有修飾符g),match和exec結果一樣都是返回陣列如上方第一點

3.正規表示式中含有子表示式,且非全域性匹配,match和exec結果一致

var s='abc,bbc,cbc,dbc';

var result=/(\w)bc/.exec(s);

console.log(result);

var result2=s.match(/(\w)bc/);

console.log(result2);

//['abc','bc'],返回長度為2的陣列,第一項時匹配項,第二項是子表示式捕獲項,包含屬性,index和input,index是匹配項開始的下標

複製**

4.正規表示式中沒有子表示式,全域性匹配。match返回所有匹配項組成的陣列,exec返回乙個匹配項的陣列

var s='abc,bbc,cbc,dbc';

var result=/\wbc/g.exec(s);

console.log(result);

//['abc'],index為0,input為'abc,bbc,cbc,dbc'

var result2=s.match(/\wbc/g);

console.log(result2);

//['abc','bbc','cbc','dbc']

複製**

5.正規表示式中有子表示式,全域性匹配。match返回所有匹配項組成的陣列,忽略子表示式的捕獲項,exec忽略全域性匹配。

var s='abc,bbc,cbc,dbc';

var result=/(\w)bc/g.exec(s);

console.log(result);

//['abc','a'],index為0,input為'abc,bbc,cbc,dbc'

var result2=s.match(/(\w)bc/g);

console.log(result2);

//['abc','bbc','cbc','dbc']

複製**

6.exec適合用於迴圈匹配,雖然全域性匹配和非全域性的返回值一樣,但使用exec迴圈時,必須要加修飾符g

var s='abc,bbc,cbc,dbc';

var reg=/(\w)bc/g;

//迴圈匹配時,要先將正規表示式定義好,不然每次都是乙個新的正則物件,影響lastindex的變化

//一定要加修飾符g,lastindex是匹配項後面的下標,是下一次匹配的開始下標

//當 exec() 再也找不到匹配的文字時,它將返回 null,並把 lastindex 屬性重置為 0

var resultarr=;

while(result=reg.exec(s))

console.log(json.stringify(resultarr));//[["abc","a"],["bbc","b"],["cbc","c"],["dbc","d"]]

複製**

exec與match的區別,js的正則

exec是正則物件的方法,對正規表示式中的模式符g相當於不認識,它只會找到符合的字串,同時下面詳細的每乙個匹配 的子匹配 match是字串物件的方法,當沒有g的時候,找到第乙個匹配字串,以及下面詳細的每乙個匹配 的子匹配,當有g的時候,匹配多個字串,而下面的的子匹配則丟失 js中好像沒有方法一次性獲...

js正則表達exec與match的區別說明

以前用js很少用到js的正規表示式,即使用到了,也是諸如郵件名稱之類的判斷,網上 很多,很少有研究,拿來即用。最近開發遇到一些需要使用正規表示式,順便研究一下 正規表示式物件有兩個定義方式 1 第一種定義 new regexp pattern,attributes 如var reg new rege...

js正則表達exec與match的區別說明

以前用js很少用到js的正規表示式,即使用到了,也是諸如郵件名稱之類的判斷,網上 很多,很少有研究,拿來即用。最近開發遇到一些需要使用正規表示式,順便研究一下 正規表示式物件有兩個定義方式 1 第一種定義 new regexp pattern,attributes 如var reg new rege...