我很抱歉,如果之前已经出现这种情况,但我无法在google上找到任何可以提供我想要的东西.
我有一个字段,您可以编写表达式:x>1,x>2||x<1 (x>1) && (x<2)等我想是检查的表达,因此只能含有一定有效字符防范代码注入一个正则表达式.a.1不应该匹配.
到目前为止我正在使用这个:
expression.match('[xX<>=|0-9&().]')
Run Code Online (Sandbox Code Playgroud)
但是这也会返回包含任何这些字符的内容.我想要的是一个表达式,只有当所有字符都匹配正则表达式中的任何一个时才会返回.
在角色类和锚之后你需要*或+量化:
/^[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了匹配空格.