簡體   English   中英

正則表達式包含某些字符和兩個詞(對與錯)

[英]Regex to include certain characters and two words (true and false)

我想在JavaScript中使用eval()來評估方程式和邏輯表達式。 為了清理輸入,我只想允許數字,數學運算符以及單詞“ true”和“ false”。

我開始的第一部分: /^[\\d\\+\\-\\*\\/()\\|&!<>=]+$/匹配數字和運算符。

我發現在括號中添加truefalse可以匹配這些字母的任何累積。 regex命令的其他各種排列有時會驗證包含“ true”的任何字符串,甚至包含任何允許的任何字符的字符串。

我要說的是,在可接受的字符列表中包括對與錯。

我正在將JavaScript與match()方法一起使用。

您可以使用OR運算符和一個非捕獲組來將字母的順序保持為truefalse ,並使用單詞邊界防止其他單詞字符繞過它們:

/^(?:[\d+*\/()|&!<>=-]|\btrue\b|\bfalse\b)+$/i

我刪除了您的正則表達式中的一些轉義符,因為正則表達式中的許多元字符成為字符類中的文字字符,但-除外,我在刪除反斜杠時將其放在最后。

我還添加了不區分大小寫的標志,以便您也可以將大寫字符都匹配為truefalse

您可能還希望在其中接受空格,但是由於我並不真正知道您的輸入可能是什么,因此我沒有自己添加它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM