字符串中的所有字符必须与正则表达式匹配

Pre*_*cho 3 javascript regex

我很抱歉,如果之前已经出现这种情况,但我无法在google上找到任何可以提供我想要的东西.

我有一个字段,您可以编写表达式:x>1,x>2||x<1 (x>1) && (x<2)等我想是检查的表达,因此只能含有一定有效字符防范代码注入一个正则表达式.a.1不应该匹配.

到目前为止我正在使用这个:

expression.match('[xX<>=|0-9&().]')
Run Code Online (Sandbox Code Playgroud)

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

Wik*_*żew 9

在角色类和锚之后你需要*+量化:

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

现在,它将匹配

  • ^ - 字符串的开头
  • [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)"));
Run Code Online (Sandbox Code Playgroud)

注意我也添加\s了匹配空格.