正則表達(dá)式是包含各種字符的模式。我們可以使用正則表達(dá)式來(lái)搜索字符串是否包含特定模式。
在這里,我們將學(xué)習(xí)創(chuàng)建正則表達(dá)式來(lái)驗(yàn)證各種數(shù)學(xué)公式。我們將使用 test() 或 match() 方法來(lái)檢查特定數(shù)學(xué)公式是否與正則表達(dá)式匹配
語(yǔ)法
用戶可以按照以下語(yǔ)法創(chuàng)建接受特殊數(shù)學(xué)公式的正則表達(dá)式。
let regex = /^\d+([-+]\d+)*$/g;
登錄后復(fù)制
上面的正則表達(dá)式只接受 10 – 13 + 12 + 23,就像數(shù)學(xué)公式一樣。
正則表達(dá)式解釋
/ /?–?它代表正則表達(dá)式的開(kāi)始和結(jié)束。
^?–?它代表公式字符串的開(kāi)頭。
\d+?–?它代表公式開(kāi)頭的至少一位或多位數(shù)字。
[-+] – 表示正則表達(dá)式中的“+”和“-”運(yùn)算符。
([-+]\d+)*?–?表示公式中可以包含數(shù)字,后跟多次“+”或“-”運(yùn)算符。
$?–?它代表字符串的結(jié)尾。
g – 它是匹配所有出現(xiàn)的標(biāo)識(shí)符。
示例
在下面的示例中,我們創(chuàng)建了正則表達(dá)式,它接受包含數(shù)字“+”或“-”運(yùn)算符的公式。
用戶可以觀察到第一個(gè)公式與輸出中的正則表達(dá)式模式匹配。第二個(gè)公式與正則表達(dá)式模式不匹配,因?yàn)樗?”運(yùn)算符。另外,第三個(gè)公式與第一個(gè)公式相同,但它在運(yùn)算符和數(shù)字之間包含空格,因此與正則表達(dá)式不匹配。
<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>
登錄后復(fù)制
下面示例中使用的正則表達(dá)式
我們?cè)谙旅娴氖纠惺褂昧?/^\d+(\s*[-+*/]\s*\d+)*$/g 正則表達(dá)式。用戶可以在下面找到所使用的正則表達(dá)式的解釋。
^\d+?–?它代表公式開(kāi)頭至少一位數(shù)字。
\s*?–?它代表零個(gè)或多個(gè)空格。
(\s*[-+*/]\s*\d+)*?–?表示公式中可以按相同順序多次包含空格、運(yùn)算符、空格和數(shù)字。
示例
在下面的示例中,我們通過(guò)傳遞各種公式作為參數(shù)來(lái)調(diào)用 TestMultiplyFormula() 函數(shù)三次。我們使用 test() 方法來(lái)檢查公式是否與正則表達(dá)式模式匹配。
在輸出中,我們可以看到正則表達(dá)式接受帶有“*”和“/”運(yùn)算符以及空格的公式。
<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>
登錄后復(fù)制
本教程教我們創(chuàng)建一個(gè)接受特殊數(shù)學(xué)公式的正則表達(dá)式。在這兩個(gè)示例中,我們都使用了 test() 方法來(lái)將公式與正則表達(dá)式進(jìn)行匹配。此外,我們?cè)趦蓚€(gè)示例中使用了不同的正則表達(dá)式模式。
以上就是如何創(chuàng)建只接受特殊公式的正則表達(dá)式?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.92cms.cn其它相關(guān)文章!