javascript - 正则表达式包含某些字符和两个单词(true 和 false)

标签 javascript regex

我想使用eval()在 JavaScript 中计算方程和逻辑表达式。为了净化输入,我只想允许数字、数学运算符以及单词“true”和“false”。

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

我发现添加 truefalse括号中的字符将匹配这些字母的任何累积。正则表达式命令的各种其他排列有时会验证包含“true”的任何字符串,甚至包含任何允许的字符的任何字符串。

可以这么说,我想要的只是将 true 和 false 包含在可接受的字符列表中。

我正在使用 JavaScript 和 match()方法。

最佳答案

您可以使用 OR 运算符和非捕获组来保持 truefalse 中字母的顺序,并使用单词边界来阻止其他单词字符绕过他们:

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

我删除了正则表达式中的一些转义符,因为正则表达式中的许多元字符都变成了字符类中的文字字符,但 - 除外,我在删除反斜杠时将其放在末尾。

我还添加了不区分大小写的标志,以便您也可以匹配 truefalse 的大写字符。

您可能还想接受其中的空格,但由于我真的不知道您的输入是什么,所以我自己没有添加它。

关于javascript - 正则表达式包含某些字符和两个单词(true 和 false),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21500899/

相关文章:

regex - sed 仅在两个已知字符串之间替换字符

javascript - 在出现第一个空格时拆分字符串

java正则表达式不情愿的量词给出贪婪的量词

javascript - 在 JavaScript 中强制重新加载跳过 Service Worker

javascript - 如何在 ExpressJS 中的 HTML 表单上添加值

PHP语法高亮代码编辑器

python - 研究Python中特殊字符的问题

regex - 如何在 SQLite 查询中使用正则表达式?

javascript - 如果没有可用的动态创建表单字段,则显示一个按钮

java - 使用 MQTT (paho) + activeMQ 接收消息的正确方式是怎样的?