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) |
您可能感興趣的文章:- ES6學習筆記之正則表達式和字符串正則方法分析
- javascript 手機號碼正則表達式驗證函數
- 比較正宗的驗證郵箱的正則表達式js代碼詳解
- JS正則表達式大全(整理詳細且實用)
- js 常用正則表達式表單驗證代碼
- js正則表達式的使用詳解
- 精通JS正則表達式(推薦)
- ES6正則表達式的一些新功能總結