我一直试图找到一种方法来做这个约一个小时,但也许我没有正确地说它。
我希望匹配所有特殊字符EXCEPT -_ +#&!
示例集:
!@#$%^&µ*&+=_-()}{~`¡€$*
正则表达式应该选择:
@$%^µ*=()}{~`¡€$*
答案 0 :(得分:2)
Andrew的上述答案将选择一个字符,您可能希望匹配多个字符:
/([^\w!&+=_-]+)/g
编辑:
在验证(OP可能正在进行)的情况下,它并不重要,但是如果你正在清理这些字符的字符串 - 那就是你想要匹配一个或多个字符。
你还要用\ w删除字母数字字符,我不确定你是否想要那样。
实际上,您只想要特殊字符,所以这是正确的!
答案 1 :(得分:0)
发布此消息后一分钟,我发现了解决方案。
/([^\w!&+=_-])/g
为了将来参考,如果您要排除除特定字符集之外的所有特殊字符,您可以:
/([^\w__theSpecialCharactersYouWantToAllow__])/g
如果我错了,请告诉我。
答案 2 :(得分:0)
这也可以起作用:)
var regex = new RegExp(/([^-_+#&!])/g),
str = "!@#$%^&µ*&+=_-()}{~`¡€$*";
console.log(str.match(regex));