2

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

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

res = text.replace(regex, '')

if (res) return false

所以我用replace做了它可以用regex.test做吗?

4

1 回答 1

8

是的。有两种可能性。一种是,您使用锚点来断言完整的字符串是由这些组成的:

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

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

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

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

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

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

于 2012-12-03T17:46:54.687 回答