Javascript正则表达式:匹配除允许的特殊字符之外的任何非字

时间:2014-12-29 20:52:32

标签: javascript regex escaping special-characters regex-negation

我一直试图找到一种方法来做这个约一个小时,但也许我没有正确地说它。

我希望匹配所有特殊字符EXCEPT -_ +#&!

示例集:

!@#$%^&µ*&+=_-()}{~`¡€$*

正则表达式应该选择:

@$%^µ*=()}{~`¡€$*

3 个答案:

答案 0 :(得分:2)

Andrew的上述答案将选择一个字符,您可能希望匹配多个字符:

/([^\w!&+=_-]+)/g

编辑:

在验证(OP可能正在进行)的情况下,它并不重要,但是如果你正在清理这些字符的字符串 - 那就是你想要匹配一个或多个字符。

你还要用\ w删除字母数字字符,我不确定你是否想要那样。

实际上,您只想要特殊字符,所以这是正确的!

答案 1 :(得分:0)

发布此消息后一分钟,我发现了解决方案。

/([^\w!&+=_-])/g

http://www.regexr.com/3a50t

为了将来参考,如果您要排除除特定字符集之外的所有特殊字符,您可以:

/([^\w__theSpecialCharactersYouWantToAllow__])/g

如果我错了,请告诉我。

答案 2 :(得分:0)

这也可以起作用:)

var regex = new RegExp(/([^-_+#&!])/g),
    str = "!@#$%^&µ*&+=_-()}{~`¡€$*";

console.log(str.match(regex));