【发布时间】:2017-12-09 01:14:26
【问题描述】:
我正在尝试创建一个字符串中仅包含少于 6 个字符的正则表达式
0,1,(,),|,&
我想出了这个正则表达式
^[0-1\|()\&]$
但即使输入有效的字符串,它似乎也会失败。如下
const inputStr = "(0&(1&(1|0))";
const validateStr = new RegExp("^[0-1\|\(\)\&]$");
const isValid = validateStr.test(inputStr);
上面需要返回true,但是isValid的输出是false。请让我知道我哪里做错了。
【问题讨论】:
-
这个?
const validateStr = /^[01|&()]+$/i; -
@ChrisG 为什么不作为答案发布?
-
@IgorSoloydenko 因为其他人极不可能有同样的问题,所以这个问题的半衰期可能会有点短。
-
这似乎有效!谢谢@ChrisG。但是为什么不没有新的 RegExp... 为什么不转义像 |&() 之类的特殊字符
-
@gregchap JS 可识别正则表达式,您无需转义由
[ ]分隔的字符集中的字符。
标签: javascript regex