如何使用 JavaScript 正則表示式查詢括號之間的數字?


在 JavaScript 中,正則表示式 [^0-9] 用於查詢括號內的字元,但不是數字。除了括號中提到的數字外,它會將文字中剩餘的字元作為陣列返回。

我們都知道 JavaScript 中的 RegExp(正則表示式)。RegExp 是一個物件,它指定用於對字串執行搜尋和替換操作或用於輸入驗證的模式。RegExp 在 ES1 中引入,並得到所有瀏覽器的完全支援。

語法

非數字或 /[^0-9]/ 字元的語法為:

new RegExp("[^0-9]") or simply /[^0-9]/ 

這裡 /[^0-9]/ 在 ES1 中引入。它得到所有瀏覽器的完全支援。例如,Chrome、IE、Safari、Opera、Firefox 和 Edge。

RegExp 具有修飾符,如 g、i、m。“g”用於執行全域性匹配,“i”用於執行不區分大小寫的匹配,“m”用於執行多行匹配。

帶有修飾符的 \w 的語法,例如:

new RegExp("[^0-9]", "g") or simply /[^0-9]/g

查詢非括號數字的步驟

步驟 1 - 定義一個包含數字的字串。

步驟 2 - 定義非括號數字的正則表示式模式。

步驟 3 - 使用 match() 方法將字串與正則表示式模式匹配。

步驟 4 - 顯示匹配的數字。

現在,讓我們看看如何查詢括號內除了數字以外的字元。

示例

在此示例中,我們查詢括號 [0, 4] 之外的數字。

<!DOCTYPE html>
<html>
<body>
   <h2>Digits not between the bracket</h2>
   <p>Digits not in the bracket [1, 4]:
      <p id = "result"></p>
   </p>
   <script>
      let text = "1234567890";
      let pattern = /[^1-4]/g;
      let result = text.match(pattern);
      document.getElementById("result").innerHTML = result;
   </script>
</body>
</html>

示例

在下面的示例中,我們查詢括號 [1, 4] 之外的字元。

<!DOCTYPE html>
<html>
<body>
   <h2>RegExp [^1-4]</h2>
   <p>Characters not in the bracket [1-4]:
      <p id = "result"></p>
   </p>
   <script>
      let text = "1234567890_Hello@$%^&65434320867042ecsceQW";
      let pattern = /[^1-4]/g;
      let result = text.match(pattern);
      document.getElementById("result").innerHTML = result;
   </script>
</body>
</html>

在這裡,我們可以觀察到我們給定的文字為 0-9 和 "_Hello@$%^&"。但在模式中,我們提到不要列印 [1-4] 中的數字。因此,match() 方法會將剩餘的字元作為陣列返回,否則 match() 方法會返回 null。讓我們看另一個例子

示例

<!DOCTYPE html>
<html>
<body>
   <h2>JavaScript Regular Expressions</h2>
   <p id = "result"></p>
   <script>
      let text = "123456789";
      let pattern = /[^1-9]/g;
      let result = text.match(pattern);
      if(result == null){
         document.getElementById("result").innerHTML = "No characters found";
      } else {
         document.getElementById("result").innerHTML = "Characters are " + result;
      }
   </script>
</body>
</html>

這裡,文字為 1-9,模式也不為 1-9。因此,match() 方法不會在文字中找到除 1-9 之外的任何字元。因此,它將返回 null。然後,如果語句被執行。如果我們給出如第一個示例所示的文字,則將執行 else 分支。

示例

<!DOCTYPE html>
<html>
<body>
   <h2>JavaScript Regular Expressions</h2>
   <p id = "result">Characters not between the bracket [1, 9]: <br><br> </p>
   <script>
      let text = "9876543210_Hello@$%^&";
      let pattern = /[^1-9]/g;
      let result = text.match(pattern);
      if(result == null){
         document.getElementById("result").innerHTML += "No characters found";
      } else {
         document.getElementById("result").innerHTML += "Characters are " + result;
      }
   </script>
</body>
</html>

現在,我們將檢查如何替換給定文字中的單詞字元。為此,我們將使用另一個僅包含數字的正則表示式。我們將此正則表示式與先前的結果匹配。讓我們看一個例子

示例

在下面的示例中,我們僅查詢括號 [1, 4] 之外的數字。

<!DOCTYPE html>
<html>
<body>
   <h1>RegExp [^0-9]</h1>
   <p>Digits not in the bracket [1,4]:
      <p id = "result"></p>
   </p>
   <script>
      let text = "1234567890_Hello@$%^&65434320867042ecsceQW";
      let pattern = /[^1-4]/g;
      let result = text.match(pattern);
      let pattern2 = /\d/g;
      document.getElementById("result").innerHTML =
      JSON.stringify(result).match(pattern2);
   </script>
</body>
</html>

在上面的程式中,我們首先查詢括號 [1, 4] 之外的所有字元,然後從這組字元中僅查詢數字。

更新於:2022-12-08

109 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.