[英]Regex to include certain characters and two words (true and false)
我想在JavaScript中使用eval()
來評估方程式和邏輯表達式。 為了清理輸入,我只想允許數字,數學運算符以及單詞“ true”和“ false”。
我開始的第一部分: /^[\\d\\+\\-\\*\\/()\\|&!<>=]+$/
匹配數字和運算符。
我發現在括號中添加true
與false
可以匹配這些字母的任何累積。 regex命令的其他各種排列有時會驗證包含“ true”的任何字符串,甚至包含任何允許的任何字符的字符串。
我要說的是,在可接受的字符列表中包括對與錯。
我正在將JavaScript與match()
方法一起使用。
您可以使用OR運算符和一個非捕獲組來將字母的順序保持為true
和false
,並使用單詞邊界防止其他單詞字符繞過它們:
/^(?:[\d+*\/()|&!<>=-]|\btrue\b|\bfalse\b)+$/i
我刪除了您的正則表達式中的一些轉義符,因為正則表達式中的許多元字符成為字符類中的文字字符,但-
除外,我在刪除反斜杠時將其放在最后。
我還添加了不區分大小寫的標志,以便您也可以將大寫字符都匹配為true
和false
。
您可能還希望在其中接受空格,但是由於我並不真正知道您的輸入可能是什么,因此我沒有自己添加它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.