字符串中的所有字符都必须与regex匹配

ezykj2lf  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(480)

我很抱歉,如果这已经上升了之前,但我找不到任何在谷歌上,给我想要的东西。
我有一个可以写表达式的字段: x>1 ,
x>2||x<1 (x>1) && (x<2) 我想要的是一个正则表达式,检查表达式,使它只能包含一个特定的有效字符,以防止代码注入。 a.1 不应该匹配。
到目前为止,我使用的是:

expression.match('[xX<>=|0-9&().]')

但这也会返回任何包含这些字符的内容。我想要的是一个表达式,它只在所有字符都匹配正则表达式中的任何字符时才返回。

pgvzfuti

pgvzfuti1#

你需要 * 或者 + 字符类和锚点后的量词:

/^[xX<>=|0-9&()\s.]*$/.test(expression)
 ^                 ^^

现在,它将匹配 ^ -字符串开头 [xX<>=|0-9&\s().]* -零或更多(如果您使用 + ,char类中定义的一个或多个字符 $ -字符串结尾。
简短演示:

console.log(/^[xX<>=|0-9&\s().]*$/.test("a.1"));
console.log(/^[xX<>=|0-9&\s().]*$/.test("(x>1) && (x<2)"));

我补充说 \s 也匹配空格。

相关问题