es6正規表示式

2022-06-16 07:42:08 字數 2471 閱讀 4551

在es5中,regexp建構函式的引數有兩種情況。

第一種情況是,引數是字串,這時第二個引數表示正規表示式的修飾符(flag)。

var regex = new regexp('xyz', 'i');// 等價於

var regex = /xyz/i;

第二種情況是,引數是乙個正規表示式,這時會返回乙個原有正規表示式的拷貝。

var regex = new regexp(/xyz/i);// 等價於

var regex = /xyz/i;

但是,es5不允許此時使用第二個引數,新增修飾符,否則會報錯。

var regex = new regexp(/xyz/, i);// uncaught typeerror: cannot supply flags when constructing one regexp from another

es6改變了這種行為。如果regexp建構函式第乙個引數是乙個正則物件,那麼可以使用第二個引數指定修飾符。而且,返回的正規表示式會忽略原有的正規表示式的修飾符,只使用新指定的修飾符。

new regexp(/abc/ig, 'i').flags// "i"

上面**中,原有正則物件的修飾符是ig它會被第二個引數i覆蓋

字串物件共有4個方法,可以使用正規表示式:match()replace()search()split()

es6將這4個方法,在語言內部全部呼叫regexp的例項方法,從而做到所有與正則相關的方法,全都定義在regexp物件上。

字串物件共有4個方法,可以使用正規表示式:match()replace()search()split()

3、es6對正規表示式新增了u修飾符,含義為「unicode模式」,用來正確處理大於\uffff的unicode字元。也就是說,會正確處理四個位元組的utf-16編碼。對於碼點大於0xffff的unicode字元,點字元不能識別,必須加上u修飾符。es6新增了使用大括號表示unicode字元,這種表示法在正規表示式中必須加上u修飾符,才能識別。

/\u/.test('a') //

false

/\u/u.test('a') //

true

/\u/u.test('

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

es6 遇到正規表示式

let evalexpr g let expr s s g 上面例項 中使用懶惰匹配的目的是,要找出字串中包含的所有的以 開頭,以 結尾的子字串,如果不是懶惰匹配那 會只返回乙個字串,舉例 let evlexpr g let evlexpr1 g let str for let i 0 i data...

ES6學習 正規表示式新特性

簡單說一下正規表示式中新加入的特性 1 flags屬性 abc ig.flags gi2 u unicode標記,chrome 48都還不支援這個標記 ud83d test ud83d udc2a true ud83d u.test ud83d udc2a false ud83d u.test ud...