[英]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.