正则expression式,除白色空格或冒号以外的每个非字母数字字符

我似乎无法弄清楚如何在任何地方做到这一点。 任何帮助?

基本上我试图匹配各种各样的杂项字符,如&符号,分号,美元符号等等。

 [^a-zA-Z\d\s:] 
  • \ d – 数字类
  • \ s – 空格
  • a-zA-Z – 匹配所有的字母
  • ^ – 否定所有 – 所以你得到 – 非数字字符,非空格和非冒号

这应该这样做: [^a-zA-Z\d\s:]希望它有帮助!

尝试这个

 [^a-zA-Z0-9 :] 

JS例子:

 "!@#$%* ABC def:123".replace(/[^a-zA-Z0-9 :]/g, ".") 

看一个在线的例子:

http://jsfiddle.net/vhMy8/

如果你想用正常的字母来对待重音的拉丁字符(例如.àÑ)(也就是避免与之匹配),你还需要在正则expression式中包含合适的Unicode范围( \ u00C0- \ u00FF ),所以它看起来像这样:

 /[^a-zA-Z\d\s:\u00C0-\u00FF]/g 
  • ^否定如下
  • a-zA-Z匹配大写和小写字母
  • \d匹配数字
  • \s匹配空格(如果您只想匹配空格,请用空格replace)
  • :匹配一个冒号
  • \u00C0-\u00FF匹配重音拉丁字符的Unicode范围。

NB。 Unicode范围匹配可能不适用于所有的正则expression式引擎,但是上面的确可以在Javascript中使用(如在Codepen上的这个笔中所看到的)。

NB2。 如果您对匹配下划线不感兴趣,可以用\wreplacea-zA-Z\d ,它匹配字母,数字和下划线。

没有字母数字,空格或“_”。

 var reg = /[^\w\s)]|[_]/g; 

如果您的意思是“非字母数字字符”,请尝试使用它

 var reg =/[^a-zA-Z0-9]/g //[^abc] 

尝试添加这个

 ^[^a-zA-Z\d\s:]*$ 

这已经为我工作… 🙂

 "0_0 (: /-\ :) 0-0".replace(/[^a-zA-Z0-9 :]/g,"") 

已经为我工作了。 然而,

 replace(/[^a-zA-Z/d :]/g,"") 

没有为我工作。