如何建立僅接受特殊公式的正則表示式?


正則表示式是一個包含各種字元的模式。我們可以使用正則表示式來搜尋字串是否包含特定模式。

在這裡,我們將學習建立正則表示式以驗證各種數學公式。我們將使用 test() 或 match() 方法來檢查特定數學公式是否與正則表示式匹配。

語法

使用者可以遵循以下語法建立接受特殊數學公式的正則表示式。

let regex = /^\d+([-+]\d+)*$/g; 

以上正則表示式僅接受 10 – 13 + 12 + 23 之類的數學公式。

正則表示式解釋

  • / /  它表示正則表示式的開始和結束。

  • ^  它表示公式字串的開頭。

  • \d+  它表示公式開頭至少一個或多個數字。

  • [-+] – 它表示正則表示式中的“+”和“-”運算子。

  • ([-+]\d+)*  它表示公式可以包含後跟“+”或“-”運算子的數字多次。

  • $  它表示字串的結尾。

  • g – 它是匹配所有出現的識別符號。

示例

在下面的示例中,我們建立了接受包含“+”或“-”運算子和數字的公式的正則表示式。

使用者可以觀察到第一個公式與輸出中的正則表示式模式匹配。第二個公式與正則表示式模式不匹配,因為它包含“*”運算子。此外,第三個公式與第一個相同,但它在運算子和數字之間包含空格,因此它與正則表示式不匹配。

<html>
<body>
   <h3>Creating the regular expression to validate special mathematical formula in JavaScript</h3>
   <div id = "output"></div>
   <script>
      let output = document.getElementById('output');
      function matchFormula(formula) {
         let regex = /^\d+([-+]\d+)*$/g;
         let isMatch = regex.test(formula);
         if (isMatch) {
            output.innerHTML += "The " + formula + " is matching with " + regex + "<br>";
         } else {
            output.innerHTML += "The " + formula + " is not matching with " + regex + "<br>";
         }
      }
      let formula = "10+20-30-50";
      matchFormula(formula);
      matchFormula("60*70*80");
      matchFormula("10 + 20 - 30 - 50")
   </script>
</body>
</html> 

下面示例中使用的正則表示式

我們在下面的示例中使用了 /^\d+(\s*[-+*/]\s*\d+)*$/g 正則表示式。使用者可以在下面找到所用正則表示式的解釋。

  • ^\d+  它表示公式開頭至少一個數字。

  • \s*  它表示零個或多個空格。

  • (\s*[-+*/]\s*\d+)*  它表示公式可以按相同順序包含空格、運算子、空格和數字多次。

示例

在下面的示例中,我們透過傳遞各種公式作為引數,三次呼叫了 TestMultiplyFormula() 函式。我們使用了 test() 方法來檢查公式是否與正則表示式模式匹配。

在輸出中,我們可以看到正則表示式接受包含“*”和“/”運算子以及空格的公式。

<html>
<body>
   <h2>Creating the regular expression <i> to validate special mathematical formula </i> in JavaScript.</h2>
   <div id = "output"> </div>
   <script>
      let output = document.getElementById('output');
      function TestMultiplyFormula(formula) {
         let regex = /^\d+(\s*[-+*/]\s*\d+)*$/g;
         let isMatch = regex.test(formula);
         if (isMatch) {
            output.innerHTML += "The " + formula + " is matching with " + regex + "<br>";
         } else {
            output.innerHTML += "The " + formula + " is not matching with " + regex + "<br>";
         }
      } 
      let formula = "12312323+454+ 565 - 09 * 23";
      TestMultiplyFormula(formula);
      TestMultiplyFormula("41*14* 90 *80* 70 + 90");
      TestMultiplyFormula("41*14& 90 ^80* 70 + 90");
   </script>
</body>
</html>

本教程教會我們建立接受特殊數學公式的正則表示式。在兩個示例中,我們都使用了 test() 方法將公式與正則表示式匹配。此外,我們在兩個示例中使用了不同的正則表示式模式。

更新於: 2023-02-22

908 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.