ES2015 正規表示式新增特性

懷特然後發表於2022-03-16

ES2015 正規表示式新增特性:

在原來正規表示式基礎上,ES2015增強了對四位元組unicode字元的支援等功能。

更多正規表示式內容可以參閱正規表示式教程板塊。

一.RegExp建構函式的使用:

在ES2015之前,使用RegExp建構函式建立正規表示式物件有兩種方式:

建立方式一:

var reg = new RegExp("antzone","g");

建構函式的第一個引數是正規表示式字串主體,第二個引數是正規表示式修飾符。
上面的程式碼等價於下面程式碼:

var regex = /antzone/g;

建立方式二:

var reg = new RegExp(/antzone/g);

如果引數不是正規表示式字串,那麼只能夠有一個引數;下面的寫法是錯誤的:

var reg = new RegExp(/antzone/,g);

不允許使用第二個引數設定正規表示式修飾符。
ES2015改變這一行為,即便是第一個引數是正規表示式物件,也可以規定第二個引數:

var reg = new RegExp(/antzone/gi,"g");

第二個引數規定的正規表示式修飾符會覆蓋第一個引數中的修飾符。

二.字串的正則方法:

正規表示式相關的match()、replace()、search()和split()方法屬於字串物件。
ES2015對此作了修改,當呼叫這四個方法的時候,實際上內部呼叫的是RegExp物件的例項方法。
(1).String.prototype.match 呼叫 RegExp.prototype[Symbol.match]。
(2).String.prototype.replace 呼叫 RegExp.prototype[Symbol.replace]
(3).String.prototype.search 呼叫 RegExp.prototype[Symbol.search]
(3).String.prototype.split 呼叫 RegExp.prototype[Symbol.split]
關於Symbol可以參閱ES2015 Symbol一章節。

三.後行斷言(ES2016):

後行斷言可以參閱 一章節。

四.新增修飾符:

修飾符 描述
u修飾符 此修飾符標識能夠正確處理大於\uFFFF的Unicode字元。
y修飾符 規定只能從lastIndex屬性規定的位置開始進行匹配,匹配失敗不會再去嘗試後面的字元。

五.新增屬性:


屬性 描述
sticky屬性 返回一個布林值,用來標識是否設定了y修飾符。
flags屬性 返回正規表示式的修飾符。

六.新增方法:



方法 描述
RegExp.escape()(ES2016)



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70015107/viewspace-2871386/,如需轉載,請註明出處,否則將追究法律責任。

相關文章