Javascript正则表达式?或其他方法来非常正确的文本输入

时间:2016-01-14 07:41:39

标签: javascript regex

我正在尝试在网页上使用输入文本来构建SQL查询(Where子句)。

我们有一些带有数字的“预定义”查询 - 我想让用户有可能写下这样的内容:

[1] AND [2]
[1] OR [2] AND NOT [3]
[1] OR NOT ([2] AND [3])
etc.

是否可以通过js regex进行验证?还是其他方法?我想只向用户提供在括号,括号和单词OR,AND和NOT中写数字的可能性。很好的是检查括号是否正常 - 但最重要的是只创建允许的字符。

1 个答案:

答案 0 :(得分:1)

只有在可以限制嵌套深度的情况下才能验证正确的括号嵌套,但即使这样,它也会变得复杂。句法正确性(不允许"[1] OR AND AND"之类的东西)将变得更加困难。 对于这些问题,您实际上需要一个解析器。

可以使用正则表达式轻松检查输入中只包含允许的字符/单词/模式:

/^(?:\[\d+\]|\b(?:AND|OR|NOT)\b|[ ()])*$/

测试live on regex101.com