1.String包裝類(lèi)型的match方法
語(yǔ)法: str.match(regexp)
str:要進(jìn)行匹配的字符串. regexp:一個(gè)正則表達(dá)式(或者由RegExp()構(gòu)造成的正則表達(dá)式)
match的用法主要區(qū)分就是,正則表達(dá)式是否有全局標(biāo)示g.
- 如果有g全局標(biāo)志,那么返回的數(shù)組保存的是所有匹配的內(nèi)容绊率,不包過(guò)子匹配涉兽。
- 如果沒(méi)有g全局標(biāo)志,那么返回的數(shù)組第一個(gè)是正確匹配的結(jié)果汁展,后面依次是子匹配的結(jié)果两波。
- 如果沒(méi)有匹配的內(nèi)容此蜈,那么就會(huì)返回null
var string='red';
var match=string.match(/\w/g);
console.log(match); //[ 'r', 'e', 'd' ]
var match=string.match(/\w/);
console.log(match); //[ 'r', index: 0, input: 'red' ]
2.RegExp引用類(lèi)型的exec方法
語(yǔ)法:regexp.exec(str);
regexp:正則表達(dá)式(可以直接定義也可以利用RegExp的方式定義) str:要匹配的字串
- exec與match的關(guān)聯(lián)就是exec等價(jià)于不含有g(shù)全局標(biāo)志的match堰氓,即返回?cái)?shù)組arr[0]為匹配的完整串.其余的為子匹配的字符串。
- 在設(shè)置g全局標(biāo)志的情況下现柠,每次調(diào)用exec都會(huì)在字符串中繼續(xù)查找新匹配項(xiàng)
- 如果沒(méi)有匹配的內(nèi)容院领,那么就會(huì)返回null
var string='red';
var pattern=/\w/g;
var match=pattern.exec(string);
console.log(match); //[ 'r', index: 0, input: 'red' ]
var match=pattern.exec(string);
console.log(match); //[ 'e', index: 1, input: 'red' ]
注意:此處必須使用同一個(gè)正則表達(dá)式RegExp對(duì)象,因?yàn)槿绻褂米置媪康脑捑拖喈?dāng)于直接調(diào)用RegExp構(gòu)造函數(shù)一樣够吩,每次都創(chuàng)建新的RegExp實(shí)例比然,因此每次其lastIndex屬性相當(dāng)于被重置了。