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