国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

ES6正則表達式的一些新功能總結

2019-11-19 16:37:59
字體:
來源:轉載
供稿:網友

本文主要總結了ES6正則表達式的一些新功能,分享出來供大家參考學習,下面來看看詳細的介紹:

一、構造函數實例化參數的變化

大家都知道,在ES5中,new RegExp(參數1,參數2),參數1若是指定了正則修飾符,則參數2就不應該出現,否則將會報錯,在ES6中,第二個參數的正則修飾符會覆蓋掉原有的修飾符:

<script>//在ES5中,下面的正則自帶修飾符ig,則第二個參數不能出現var reg = new RegExp(/asd/ig);//在ES6中,如下:var reg = new RegExp(/asd/ig,'i');//i會覆蓋掉原來的ig</script>

二、u修飾符

u修飾符可以自動識別碼點大于0xFFFF的編碼。只是ES6的新增內容!

<script>//uD83D/u.test("/uD83D/uDC2A");//在ES6中會返回false,u修飾符默認處理的UTF-16編碼//uD83D/.test("/uD83D/uDC2A");//在ES5中會將test的的參數拆分成兩個字符,返回true</script>

另外使用u修飾符需要注意一下幾點:

1. “.”字符

在正則表達式中,.字符的含義是除了換行符以外的所有字符,如要.字符匹配碼點大于/uFFFF的字符,必須帶u修飾符,否則不能正常識別;

<svcipt>var s = "��";//在ES5中/^.$/.test(s)//false//在ES6中/^.$/u.test(s)//true</script>

2.Unicode字符表示法

ES6中新增使用了大括號表示Unicode字符,這種方法在正則表達式中必須加上u修飾符才能識別。

<svcipt>//在ES5中,61會被當做量詞使用//u{61}/.test("a")//false//在ES6中//u{61}/u.test("a")//true</script>

3.預定義模式

u修飾符也影響到預定義模式,加了u修飾符,才能正確識別碼點大于0xFFFF的Unicode字符。

4.對i修飾符的影響

有些Unicode編碼的字符比較接近,比如大寫的K的編碼有/u004B和/u212A,

<svcipt>//未添加u修飾/[a-z]/.test("/u212A")//false//添加u修飾/[a-z]/iu.test("/u212A")//true</script>

三、y修飾符

ES6還新增了一個y修飾符,與通常的g修飾符用法類似,都是用來全局匹配,不同的是y修飾符又叫做“粘連”修飾符,在上一次匹配成功的下一個位置開始匹配,但是下一次開始位置必須要能夠滿足匹配,也就是匹配從剩余的第一個位置開始,這就是“粘連”的含義(個人理解)吧。

舉個例子吧!

<svcipt>var s = qqqq_q_qq;var r1 = /q+/g;var r2 = /q+/y//第一次匹配r1.exec(s)//["qqqq"]r2.exec(s)//["qqqq"]//第二次匹配r1.exec(s)//["qqq"]r2.exec(s)//null</script>

注意:y修飾符隱含了頭部匹配的標志^

/a/.exec("bdab");//null/a/.exec("abbd");//["a"]

開頭必須匹配上

四、新增屬性

1.sticky屬性

      判斷正則是否設置了y修飾符。

      返回布爾值。

2.flags屬性

      返回正則的修飾符

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武定县| 道孚县| 烟台市| 建湖县| 蓝田县| 建德市| 沽源县| 资源县| 闻喜县| 平原县| 阳春市| 礼泉县| 平谷区| 沙田区| 高唐县| 建德市| 通辽市| 丽江市| 邹城市| 凤台县| 澳门| 元阳县| 军事| 丰顺县| 太白县| 安多县| 西乡县| 锦屏县| 肃北| 嘉峪关市| 鄂托克旗| 陇川县| 万宁市| 大新县| 乾安县| 阿克陶县| 江北区| 蒙自县| 石阡县| 新民市| 定南县|