首頁  >  文章  >  web前端  >  如何建立只接受特殊公式的正規表示式?

如何建立只接受特殊公式的正規表示式?

WBOY
WBOY轉載
2023-09-16 19:33:031175瀏覽

如何建立只接受特殊公式的正規表示式?

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

在這裡,我們將學習建立正規表示式來驗證各種數學公式。我們將使用 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() 方法來將公式與正規表示式進行比對。此外,我們在兩個範例中使用了不同的正規表示式模式。

以上是如何建立只接受特殊公式的正規表示式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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