您好,登錄后才能下訂單哦!
小編給大家分享一下ES2015中正則表達式新增特性有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
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) |
以上是“ES2015中正則表達式新增特性有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。