繁体   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