首頁  >  文章  >  web前端  >  如何在JavaScript中連接正規表示式字面量?

如何在JavaScript中連接正規表示式字面量?

WBOY
WBOY轉載
2023-09-01 18:45:031147瀏覽

如何在JavaScript中連接正規表示式字面量?

正規表示式文字是正規表示式,是與字串相符的字元序列。有時,開發人員需要組合正規表示式。然而,正規表示式也是字串的一種類型,但我們不能像字串一樣使用「 」運算子將它們連接起來。

因此,我們首先需要從兩個正規表示式中取得標誌。之後,我們必須過濾所有唯一的標誌,並在組合多個正規表示式文字後創建一個新的正規表示式。

文法

使用者可以依照下列語法在 JavaScript 中連接正規表示式文字。

let allFlags = regex1.flags + regex2.flags;
let uniqueFlags = new Set(allFlags.split(''));
allFlags = [...uniqueFlags].join('');
let combined = new RegExp(regex1.source + regex2.source, allFlags);

在上面的語法中,首先,我們得到兩個正規表示式的標誌。之後,我們從中創建一個集合來獲取唯一標誌並組合兩個正規表示式文字。

範例 1

在下面的範例中,我們定義了兩個正規表示式文字。我們使用正規表示式文字的「flags」屬性從兩個正規表示式中取得標誌。之後,我們創建了一組標誌以獲得獨特的標誌。接下來,我們將集合轉換為陣列。

之後,我們使用正規表示式的「source」屬性來取得正規表示式文字,並使用「 」運算子組合兩個正規表示式文字。此外,我們在建立組合的正規表示式文字時使用了兩個正規表示式文字中包含的所有唯一標誌。

<html>
<body>
   <h2>Concatenating the <i> Regex literals </i> in JavaScript</h2>
   <div id = "output"> </div>
   <script>
      let output = document.getElementById('output');
      
      // concatenate two regex literals
      let regex1 = /hello/i;
      let regex2 = /world/g;
      let allFlags = regex1.flags + regex2.flags;
      let uniqueFlags = new Set(allFlags.split(''));
      allFlags = [...uniqueFlags].join('');
      let combined = new RegExp(regex1.source + regex2.source, allFlags);
      output.innerHTML += "The first regex is: " + regex1 + "<br>";
      output.innerHTML += "The second regex is: " + regex2 + "<br>";
      output.innerHTML += "The combined regex is: " + combined + "<br>";
   </script>
</body>
</html>

範例 2

在下面的範例中,使用者需要輸入正規表示式文字和相關標誌。此外,使用者需要填寫字串輸入以使用組合正規表示式進行測試。

每當使用者按下按鈕時,它就會執行combineRegex()函數。其中我們將兩個輸入正規表示式與適當的標誌結合。之後,我們使用 test() 方法檢查字串是否與組合的正規表示式匹配,並傳回布林值。

<html>
<body>
   <h2>Concatenating the <i> Regex literals </i> in JavaScript</h2>
   <input type = "text" placeholder = "regex1" id = "regex1">
   <input type = "text" placeholder = "flags" id = "flag1">
   <br> <br>
   <input type = "text" placeholder = "regex2" id = "regex2">
   <input type = "text" placeholder = "flags" id = "flag2">
   <br> <br>
   <input type = "text" placeholder = "string to test regex" id = "str">
   <br> <br>
   <div id = "output"> </div>
   <button id="btn" onclick="combineRegex()"> Combine and Match Regex </button>
   <script>
      let output = document.getElementById('output');
      function combineRegex() {
         let regex1 = new RegExp(document.getElementById('regex1').value, document.getElementById('flag1').value);
         let regex2 = new RegExp(document.getElementById('regex2').value, document.getElementById('flag2').value);
         let allFlags = regex1.flags + regex2.flags;
         let uniqueFlags = new Set(allFlags.split(''));
         allFlags = [...uniqueFlags].join('');
         let combined = new RegExp(regex1.source + regex2.source, allFlags);
         let str = document.getElementById('str').value;
         let result = combined.test(str);
         output.innerHTML += "The combined regex " + combined + " matches the string " + str + " : " + result;
      }
   </script>
</body>
</html>

範例 3

在下面的範例中,我們首先以正規字串的形式編寫正規表示式。之後,我們合併兩個字串並使用 RegExp() 建構子從組合字串建立一個新的正規表示式。

此外,我們可以將所需的標誌作為第二個參數傳遞。

<html>
<body>
   <h2>Concatenating the <i> Regex literals </i> in JavaScript</h2>
   <div id = "output"> </div>
   <script>
      let output = document.getElementById('output');
      let part1 = "Hello";
      let part2 = " World";
      var pattern = new RegExp(part1 + part2, "g");
      output.innerHTML = "The combined regex is: " + pattern + "<br>";
   </script>
</body>
</html>

結論

使用者學會了在 JavaScript 中連接正規表示式文字。在第一個範例中,我們在建立正規表示式文字後將其連接起來。在上一個範例中,我們首先組合字串,並使用組合字串建立一個新的正規表示式。但是,最後一個範例不使用正規表示式文字,因為它使用建構函式建立正規表示式。

以上是如何在JavaScript中連接正規表示式字面量?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除