作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下表达式文本
(1 AND 2) OR (3 AND 4)
这是表单的输入,我想验证它是否是有效的表达式。缺少括号或 AND/OR 拼写错误...我希望此规则有效。这只是一个例子。我希望验证适用于任何表达式规则。
1 OR (1 AND 2) OR (1 AND (2 OR 3)) //Valid
1 OR (1 AND 2) OR (1 (2 OR 3)) //Not Valid
1 OR (1 AND 2) OR (1 AND (2 OR 3) //Not Valid
1 OR (1 AND 2) OR (1 AND (2 O)R 3 //Not Valid
最佳答案
首先,请考虑括号。从左到右解析。您可以有一个随 ( 增加并随 ) 减少的计数器。如果它是负数,那么你的表达就是无效的。如果最后不为零则无效。
然后从表达式中去掉括号并检查正则表达式
^\d+\s+(AND|OR)\s+\d+(\s+(AND|OR)\s+\d+)*$
寻找
(start)integer, some whitespace, integer
后跟零个或多个
some whitespace, integer
关于Javascript - 将文本验证为 AND/OR 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47569091/
我是一名优秀的程序员,十分优秀!