如何建立僅接受特殊公式的正則表示式?
正則表示式是一個包含各種字元的模式。我們可以使用正則表示式來搜尋字串是否包含特定模式。
在這裡,我們將學習建立正則表示式以驗證各種數學公式。我們將使用 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() 方法將公式與正則表示式匹配。此外,我們在兩個示例中使用了不同的正則表示式模式。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP