在 es5 中,regexp
建構函式的引數有兩種情況。
第一種情況是,引數是字串,這時第二個引數表示正規表示式的修飾符(flag)
var regex = new regexp('xyz', 'i'
);//
等價於var regex = /xyz/i;
第二種情況是,引數是乙個正規表示式,這時會返回乙個原有正規表示式的拷貝
var regex = new regexp(/xyz/i);//等價於
var regex = /xyz/i;
但是,es5 不允許此時使用第二個引數新增修飾符,否則會報錯
//uncaught typeerror: cannot supply flags when constructing one regexp from another
var regex = new regexp(/xyz/, '
i');
es6 改變了這種行為。如果regexp
建構函式第乙個引數是乙個正則物件,那麼可以使用第二個引數指定修飾符。而且,返回的正規表示式會忽略原有的正規表示式的修飾符,只使用新指定的修飾符
console.log(new regexp(/abc/ig, 'i').flags); //i//
上面**中,原有正則物件的修飾符是ig,它會被第二個引數i覆蓋
flags:es6 為正規表示式新增了flags
屬性,會返回正規表示式的修飾符
//es5的source屬性返回正規表示式的正文
/abc/ig.source//
"abc"
//es6的flags屬性返回正規表示式的修飾符
/abc/ig.flags//
'gi'
ES6裡關於正規表示式的拓展
在 es5 中,regexp建構函式的引數有兩種情況。第一種情況是,引數是字串,這時第二個引數表示正規表示式的修飾符 flag var regex new regexp xyz i 等價於var regex xyz i 第二種情況是,引數是乙個正規表示式,這時會返回乙個原有正規表示式的拷貝 var ...
es6正規表示式
在es5中,regexp建構函式的引數有兩種情況。第一種情況是,引數是字串,這時第二個引數表示正規表示式的修飾符 flag var regex new regexp xyz i 等價於 var regex xyz i 第二種情況是,引數是乙個正規表示式,這時會返回乙個原有正規表示式的拷貝。var r...
ES6學習 正規表示式
建構函式 y修飾符 u 修飾符 unicode匹配 console.log u 1 udb3d test udb3d udc2a true console.log u 1 udb3d u.test udb3d udc2a false unicode匹配,超過 個位元組了,加u,console.log...