var expression =/pattern/flags;
pattern部分可以是任意簡(jiǎn)單或復(fù)雜的正則表達(dá)式,可以包含字符類,限定符,分組,向前查找。每個(gè)正則表達(dá)式都可帶有一個(gè)或多標(biāo)志(flags),用以表明正則表達(dá)式的行為,正則支持一下3個(gè)標(biāo)志。
g====表示全局global模式,所有字符串,而非在發(fā)現(xiàn)第一個(gè)匹配項(xiàng)時(shí)立即停止。
i====表示不區(qū)分大小寫(case-insensitive),模式
m====表示多行模式multiline
//匹配字符創(chuàng)中所有“at”的實(shí)例
var pattern=/at/g;
//匹配第一個(gè)“bat”或“cat”,不區(qū)分大小寫
var pattern2=/[bc]at/i;
//匹配所有以“at”結(jié)尾的3個(gè)字符的組合,不區(qū)分大小寫
var pattern3=/.at/gi;
([{\^$|?)*+.]}這些元字符必須轉(zhuǎn)義
實(shí)例屬性
global--布爾值,表示是否設(shè)置了g標(biāo)志
ignoraCase--布爾值,表示是否設(shè)置了i標(biāo)志
lastIndex-----整數(shù),表示開始搜索下一個(gè)匹配項(xiàng)的字符位置,從0算起。
multiline-----布爾值,是否設(shè)置了m標(biāo)志。
source--------正則表達(dá)式的字符串表示,按照字面量形式而非傳入構(gòu)造函數(shù)中的字符串模式返回。
實(shí)例方法
exec();
接受一個(gè)參數(shù) ,返回包含第一惡匹配項(xiàng)信息的數(shù)組;或者在沒有匹配項(xiàng)的情況下返回null,返回的數(shù)組雖然是Array的實(shí)例,但包含兩個(gè)額外的屬性:index和input。index表示匹配項(xiàng)所在的位置,input表示正則表達(dá)式的字符串。
vartext ="mom and dad and baby";
varpattarn = /mom( and dad( and baby)?)?/gi;
varmatches = pattarn.exec(text);
alert(matches.index);//0
alert(matches.input);//mom and dad and baby
alert(matches[0]);//mom and dad and baby
alert(matches[1]);//and dad and baby
alert(matches[2]);//and baby
test()方法
接受一個(gè)字符串參數(shù),在模式與改該參數(shù)匹配的情況下返回true,否則返回false。
RegExp實(shí)例繼承的toLocaleString()和toString()方法都會(huì)返回正則表達(dá)式的字面量。
varpp =newRegExp("\\[bc]\\at","gi");
alert(pp.toString());// /\[bc\]at/gi
alert(pp.toLocaleString());// /\[bc\]at/gi