中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ES6中正則表達式有什么用

發布時間:2021-07-09 14:30:53 來源:億速云 閱讀:110 作者:小新 欄目:web開發

這篇文章主要為大家展示了“ES6中正則表達式有什么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“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屬性

      返回正則的修飾符

以上是“ES6中正則表達式有什么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

es6
AI

松阳县| 东平县| 綦江县| 临沧市| 浦江县| 渑池县| 娱乐| 普安县| 武鸣县| 上杭县| 康定县| 永春县| 东平县| 胶南市| 南召县| 仁布县| 衡南县| 建阳市| 广元市| 华安县| 修文县| 扎赉特旗| 枣庄市| 长乐市| 龙胜| 北海市| 铜山县| 莎车县| 通城县| 定州市| 漯河市| 沙雅县| 大同市| 成都市| 寻甸| 吉安市| 大埔区| 延吉市| 诸暨市| 内乡县| 元阳县|