ES6 对正则表达式的扩展
生活随笔
收集整理的這篇文章主要介紹了
ES6 对正则表达式的扩展
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 修飾符 y
- 修飾符 u
ECMAScript 6.0(以下簡稱 ES6)是 JavaScript 語言的下一代標準,已經在 2015 年 6 月正式發布了。它的目標,是使得 JavaScript 語言可以用來編寫復雜的大型應用程序,成為企業級開發語言。
修飾符 y
與 g 類似,也是全局匹配,并且下一次匹配都是從上一次匹配成功結束位置開始(即上次匹配成功的字符串最后一個字符后面的位置),不同之處在于,g 修飾符只要剩余位置中存在匹配即可;而 y 修飾符要求剩余位置的第 1 個位置必須匹配成功,否則匹配失敗,不管后面有沒有符合正則式的內容,直接返回 null
var s = "abc_ab_a"; var r1 = /[a-z]+/g; var r2 = /[a-z]+/y; console.log(r1.exec(s),r1.lastIndex); // ["abc", index: 0, input: "abc_ab_a"] 3 console.log(r2.exec(s),r2.lastIndex); // ["abc", index: 0, input: "abc_ab_a"] 3 console.log(r1.exec(s),r1.lastIndex); // ["ab", index: 4, input: "abc_ab_a"] 6 console.log(r2.exec(s),r2.lastIndex); // null 0正則表達式 r2,第一次成功匹配到字符串 abc,這個 abc 后面的位置是 3,這個就是正則表達式成功匹配的字符串的結束位置,也就是下次迭代匹配開始的位置(即剩余位置的第 1 個位置)。我們看到位置 3 對應的字符是 _,[a-z]+ 匹配失敗了,那么就直接甩手不干了,直接返回 null,這脾氣,暴躁!
修飾符 u
u 修飾符使得正則表達式可以正常匹配 4 個字節的字符。比如 “[emoji]” 字符是一個 4 字節字符,直接使用正則匹配將會失敗,而使用 u 修飾符后,可以匹配成功,如下所示:
var s = "[emoji]"; console.log(/^.$/.test(s)); // false console.log(/^.$/u.test(s)); // true如上的代碼中,. 表示匹配任意一個字符,除了換行符以外。
總結
以上是生活随笔為你收集整理的ES6 对正则表达式的扩展的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 天龙八部游戏名字大全,天龙八部有诗意的名
- 下一篇: 赞美服务质量好的句子80句