ES2015 正則表達(dá)式新增特性:
在原來(lái)正則表達(dá)式基礎(chǔ)上,ES2015增強(qiáng)了對(duì)四字節(jié)unicode字符的支持等功能。
更多正則表達(dá)式內(nèi)容可以參閱正則表達(dá)式教程板塊。
一.RegExp構(gòu)造函數(shù)的使用:
在ES2015之前,使用RegExp構(gòu)造函數(shù)創(chuàng)建正則表達(dá)式對(duì)象有兩種方式:
創(chuàng)建方式一:
var reg = new RegExp("antzone","g");
構(gòu)造函數(shù)的第一個(gè)參數(shù)是正則表達(dá)式字符串主體,第二個(gè)參數(shù)是正則表達(dá)式修飾符。
上面的代碼等價(jià)于下面代碼:
var regex = /antzone/g;
創(chuàng)建方式二:
var reg = new RegExp(/antzone/g);
如果參數(shù)不是正則表達(dá)式字符串,那么只能夠有一個(gè)參數(shù);下面的寫(xiě)法是錯(cuò)誤的:
var reg = new RegExp(/antzone/,g);
不允許使用第二個(gè)參數(shù)設(shè)置正則表達(dá)式修飾符。
ES2015改變這一行為,即便是第一個(gè)參數(shù)是正則表達(dá)式對(duì)象,也可以規(guī)定第二個(gè)參數(shù):
var reg = new RegExp(/antzone/gi,"g");
第二個(gè)參數(shù)規(guī)定的正則表達(dá)式修飾符會(huì)覆蓋第一個(gè)參數(shù)中的修飾符。
二.字符串的正則方法:
正則表達(dá)式相關(guān)的match()、replace()、search()和split()方法屬于字符串對(duì)象。
ES2015對(duì)此作了修改,當(dāng)調(diào)用這四個(gè)方法的時(shí)候,實(shí)際上內(nèi)部調(diào)用的是RegExp對(duì)象的實(shí)例方法。
(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)識(shí)能夠正確處理大于\uFFFF的Unicode字符。 |
y修飾符 |
規(guī)定只能從lastIndex屬性規(guī)定的位置開(kāi)始進(jìn)行匹配,匹配失敗不會(huì)再去嘗試后面的字符。 |
五.新增屬性:
屬性 |
描述 |
sticky屬性 |
返回一個(gè)布爾值,用來(lái)標(biāo)識(shí)是否設(shè)置了y修飾符。 |
flags屬性 |
返回正則表達(dá)式的修飾符。 |
六.新增方法:
方法 |
描述 |
RegExp.escape()(ES2016) |
您可能感興趣的文章:- ES6學(xué)習(xí)筆記之正則表達(dá)式和字符串正則方法分析
- javascript 手機(jī)號(hào)碼正則表達(dá)式驗(yàn)證函數(shù)
- 比較正宗的驗(yàn)證郵箱的正則表達(dá)式j(luò)s代碼詳解
- JS正則表達(dá)式大全(整理詳細(xì)且實(shí)用)
- js 常用正則表達(dá)式表單驗(yàn)證代碼
- js正則表達(dá)式的使用詳解
- 精通JS正則表達(dá)式(推薦)
- ES6正則表達(dá)式的一些新功能總結(jié)