<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 正則表達式知識點([中文文檔](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions)) #### 創建方式 正則表達式使用單個字符串來描述 ```javascript //兩種均可; var regexObj = /abc/; var regexObj = new RegExp("abc"); ``` 它有什么作用呢,簡單來講就是用來匹配規則的字符串;雖然看著很雜亂,但它卻是非常強大的工具,在以后的實戰項目里會經常運用到 ------- #### 標志、邊界 > 正則表達式中的匹配范圍: `g` 全局,`i` 忽略大小寫,`m` 多行 > 邊界:`\b` `^` `$` ```javascript var regexObj = /^abc$/gi; ``` 正則表達式有許多字符類和量詞,需要注意的是標志和邊界的用法; * ”g“全局查詢; * ”i“ 查詢不區分大小寫; * ”i“ 查詢多行; * ”^“需要匹配字符串的起始位置; * ”$“需要匹配字符串的結束為止; #### 字符 > 字符: `\s` 空白, `\S` 非空白, `\w` a-zA-Z0-9_,`\W` 非, `.` 除了換行的所有字符,`\d` 數字, `\D` 非數字 #### 量 > 量詞: {n,m}`*` `+` `?` * {n} n 個 * {n,} 至少n個 * {n,m} n 至 m 個 * + 1個到多個 * * 0個到多個 * ? 0個或1個 #### 分組 使用( )進行分組 | 可捕獲分組 | 例 : ( A ( B ( C ) ) ) | 使用?exec() 返回的結果中存在分組的值 | | --- | --- | --- | | 非捕獲分組 | 例: ( A (?: B ( C ) ) ?) | 使用 exec() 返回的結果中不存在分組的值 | ------- #### RegExp方法 ```javascript regexObj.test();//只返回ture或false,主要用于數據驗證,并不需要得到數據本身; regexObj.exec(str);//返回數組對象,需要注意的是數組對象的內容,因為該方法主要用于得到數據、修改數據; ``` 相比于test(),exec()方法有幾個重要屬性; ```javascript const str = 'The Quick Brown Fox Jumps Over The Lazy Dog'; const regexObj = /quick\s(brown).+?(jumps)/ig; result = regexObj.exec(str); ``` | 對象 | <span class="Apple-tab-span" style="white-space:pre"></span>屬性/索引 | 描述 | 例子 | | --- | --- | --- | --- | | result | [0] | 匹配的全部字符串 | Quick Brown Fox Jumps | | | [1], ...[n ] | 括號中的分組捕獲 | [1] = Brown , [2] = Jumps | | | index | 匹配到的字符位于原始字符串的基于0的索引值 | 4 | | | input | 原始字符串 | The Quick Brown Fox Jumps Over The Lazy Dog | * result; 返回的是一個數組對象; * result[0]; 表示匹配的子字符串,非常重要,需要牢記; * result.index; 表示匹配的子字符串位置;非常重要,需要牢記; * result.input; 表示字符串本身; ***** #### 貪婪與非貪婪匹配 ```javascript var re = /abc+/; var str = "abccccccccc"; ``` 那么如果需要匹配的字符串中含有abccccccccc時,re該匹配”abc“還是整段的”abccccccccc“? 結果是默認下匹配abccccccccc,也就是貪婪匹配,而非貪婪匹配方法如下: ```javascript var re = /abc+?/; ``` 下面是字符類和量詞的非貪婪匹配: * `*?` 重復任意次,但盡可能少重復 * `+?` 重復1次或更多次,但盡可能少重復 * `??` 重復0次或1次,但盡可能少重復 * `{n,m}?` 重復n到m次,但盡可能少重復 * `{n,}?` 重復n次以上,但盡可能少重復 * * * * * 嘗試使用`?:` `?=` `?!`三個字符類; ```javascript var re1 = /(a(?:b(c)))/; // 非捕獲組; var re2 = /(abc(?=def))/; // 后綴=def則匹配abc; var re3 = /(abc(?!def))/; // 后綴≠def則匹配abc; ```
                  <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>

                              哎呀哎呀视频在线观看