<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                &emsp;&emsp;在ES5中,如果使用構造函數RegExp()初始化RegExp對象(即正則表達式),并且它的第一個參數是正則表達式時,那么不允許再傳入標志字符串(即第二個參數)。而ES6更改了這項限制,如果傳入了第二個參數,那么就會取代第一個參數中的標志,如下所示。 ~~~ var reg = new RegExp(/\w/g, "i"); reg.toString(); //"/\w/i" ~~~ ## 一、u標志 &emsp;&emsp;由于正則表達式無法正確處理輔助平面中的Unicode字符,因此ES6新增了u標志,使其能夠處理兩個編碼單元的字符。依然以字符“??”為例,下面是兩條正則表達式的匹配語句,返回的結果都是false。 ~~~ var word = "??"; /^.$/.test(word); //false /\u{20BB3}/.test(word); //false ~~~ &emsp;&emsp;第一條匹配語句中的元字符“.”表示除換行符之外的任意字符,但只能匹配一個字符,而“??”卻會被當成兩個字符來對待,因此匹配失敗;第二條匹配語句中使用了Unicode轉義字符的新形式,但正則表達式會將花括號中的內容識別成量詞,因此匹配也失敗。下面的代碼會為兩個正則表達式添加u標志,此時就能成功匹配。 ~~~ /^.$/u.test(word); //true /\u{20BB3}/u.test(word); //true ~~~ &emsp;&emsp;ES6還為正則表達式增加了一個只讀的布爾屬性:unicode,指示正則表達式是否攜帶了u標志。 ## 二、y標志 &emsp;&emsp;此標志也叫粘性(sticky)標志,當正則表達式中攜帶y標志時,匹配會從lastIndex屬性指定的位置開始。與g標志不同,如果在起始處的第一個位置沒有匹配成功,那么就會終止匹配,下面演示了這兩個標志的區別。 ~~~ var str = "pw1st2pw3", pattern1 = /pw\d/g, pattern2 = /pw\d/y; pattern1.test(str); //true pattern2.test(str); //true pattern1.test(str); //true pattern2.test(str); //false ~~~ &emsp;&emsp;示例中的兩個正則表達式分別攜帶g和y標志,用于匹配“pw”后跟一個數字,各自調用了兩次test()方法,在第二次調用時都會更新lastIndex屬性的值,此時得到了兩個不同的結果。 &emsp;&emsp;ES6也為正則表達式增加了一個用于標識是否攜帶y標志的布爾屬性:sticky,與unicode屬性一樣也是只讀的。 ## 三、flags屬性 &emsp;&emsp;在ES5的時代,只能通過正則表達式的source屬性得到模式規則,而ES6新增的flags屬性還可以獲取到它所攜帶的標志,但要注意,返回的值得按“gimuy”的順序排列。這兩個都是只讀屬性,具體使用如下所示。 ~~~ var pattern = /pw\d/img; pattern.source; //"pw\d" pattern.flags; //"gim" ~~~ ***** > 原文出處: [博客園-ES6躬行記](https://www.cnblogs.com/strick/category/1372951.html) [知乎專欄-ES6躬行記](https://zhuanlan.zhihu.com/pwes6) 已建立一個微信前端交流群,如要進群,請先加微信號freedom20180706或掃描下面的二維碼,請求中需注明“看云加群”,在通過請求后就會把你拉進來。還搜集整理了一套[面試資料](https://github.com/pwstrick/daily),歡迎瀏覽。 ![](https://box.kancloud.cn/2e1f8ecf9512ecdd2fcaae8250e7d48a_430x430.jpg =200x200) 推薦一款前端監控腳本:[shin-monitor](https://github.com/pwstrick/shin-monitor),不僅能監控前端的錯誤、通信、打印等行為,還能計算各類性能參數,包括 FMP、LCP、FP 等。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看