ES6裡關於正規表示式的拓展

2021-09-07 15:52:40 字數 989 閱讀 4341

在 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...