ES2015 正則表達(dá)式新增特性
ES2015 正則表達(dá)式新增特性:
在原來正則表達(dá)式基礎(chǔ)上,ES2015增強(qiáng)了對四字節(jié)unicode字符的支持等功能。
更多正則表達(dá)式內(nèi)容可以參閱正則表達(dá)式教程板塊。
一.RegExp構(gòu)造函數(shù)的使用:
在ES2015之前,使用RegExp構(gòu)造函數(shù)創(chuàng)建正則表達(dá)式對象有兩種方式:
創(chuàng)建方式一:
var reg = new RegExp("antzone","g");
構(gòu)造函數(shù)的第一個參數(shù)是正則表達(dá)式字符串主體,第二個參數(shù)是正則表達(dá)式修飾符。
上面的代碼等價于下面代碼:
var regex = /antzone/g;
創(chuàng)建方式二:
var reg = new RegExp(/antzone/g);
如果參數(shù)不是正則表達(dá)式字符串,那么只能夠有一個參數(shù);下面的寫法是錯誤的:
var reg = new RegExp(/antzone/,g);
不允許使用第二個參數(shù)設(shè)置正則表達(dá)式修飾符。
ES2015改變這一行為,即便是第一個參數(shù)是正則表達(dá)式對象,也可以規(guī)定第二個參數(shù):
var reg = new RegExp(/antzone/gi,"g");
第二個參數(shù)規(guī)定的正則表達(dá)式修飾符會覆蓋第一個參數(shù)中的修飾符。
二.字符串的正則方法:
正則表達(dá)式相關(guān)的match()、replace()、search()和split()方法屬于字符串對象。
ES2015對此作了修改,當(dāng)調(diào)用這四個方法的時候,實際上內(nèi)部調(diào)用的是RegExp對象的實例方法。
(1).String.prototype.match 調(diào)用 RegExp.prototype[Symbol.match]。
(2).String.prototype.replace 調(diào)用 RegExp.prototype[Symbol.replace]
(3).String.prototype.search 調(diào)用 RegExp.prototype[Symbol.search]
(3).String.prototype.split 調(diào)用 RegExp.prototype[Symbol.split]
關(guān)于Symbol可以參閱ES2015 Symbol一章節(jié)。
三.后行斷言(ES2016):
后行斷言可以參閱正則表達(dá)式零寬斷言一章節(jié)。
四.新增修飾符:
修飾符 | 描述 |
u修飾符 | 此修飾符標(biāo)識能夠正確處理大于\uFFFF的Unicode字符。 |
y修飾符 | 規(guī)定只能從lastIndex屬性規(guī)定的位置開始進(jìn)行匹配,匹配失敗不會再去嘗試后面的字符。 |
五.新增屬性:
屬性 | 描述 |
sticky屬性 | 返回一個布爾值,用來標(biāo)識是否設(shè)置了y修飾符。 |
flags屬性 | 返回正則表達(dá)式的修飾符。 |
六.新增方法:
方法 | 描述 |
RegExp.escape()(ES2016) |
相關(guān)文章
分享一組開源的匹配中國大陸手機(jī)號碼的正則表達(dá)式
這篇文章主要介紹了分享一組開源的匹配中國大陸手機(jī)號碼的正則表達(dá)式。文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06javascript的正則表達(dá)式學(xué)習(xí)資料復(fù)習(xí)
這里主要記錄幾個自己之前不是很熟悉的知識點,其他的知識點,上面兩個網(wǎng)站中已有詳細(xì)的參考2011-07-07JavaScript基于正則表達(dá)式的數(shù)字判斷函數(shù)
JavaScript基于正則表達(dá)式的數(shù)字判斷函數(shù),需要的朋友可以參考下。2011-01-01