Javascript正则表达式:测试文本是否仅包含集合中的字符

WHI*_*LOR 2 javascript regex

检查(测试)文本是否仅包含来自集合的字符(例如,如果文本仅包含标点符号)更好

var regex = /[\.,-\/#!$%\^&\*;:{}=\-_`~()]/g

res = text.replace(regex, '')

if (res) return false
Run Code Online (Sandbox Code Playgroud)

所以我用替换它是可以用regex.test做的吗?

Mar*_*der 8

是的.有两种可能性.一个是,你使用来断言完整的字符串是由这些组成的:

var regex = /^[\.,-\/#!$%\^&\*;:{}=\-_`~()]+$/;
if(regex.test(text))
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用否定的字符类,看它是否匹配,然后再次否定结果

var regex = /[^\.,-\/#!$%\^&\*;:{}=\-_`~()]/;
if(!regex.test(text))
Run Code Online (Sandbox Code Playgroud)

请注意,这,-\/是一个包含的范围,-./.这是多余的,如果字符类被更改,可能会成为错误的来源.您可能希望将角色类简化为:

[.,\/#!$%^&*;:{}=_`~()-]
Run Code Online (Sandbox Code Playgroud)

(或者否定版本,取决于您选择的方法.)