正则expression式:任何不是字母或数字的字符

我试图找出正则expression式,将匹配不是一个字母或数字的任何字符。 因此,(,, @,£,()等字符…

一旦发现我想用空白处replace它。

任何build议。

要匹配字母或数字以外的任何东西,您可以试试这个:

[^a-zA-Z0-9] 

并取代:

 var str = 'dfj,dsf7lfsd .sdklfj'; str = str.replace(/[^A-Za-z0-9]/g, ' '); 

这个正则expression式不匹配字母,数字和下划线字符。

\W
\W 

例如在javascript中:

"(,,@,£,() asdf 345345".replace(/\W/g, ' ');
"(,,@,£,() asdf 345345".replace(/\W/g, ' '); 

您正在寻找:

 var yourVar = '1324567890abc§$)%'; yourVar = yourVar.replace(/[^a-zA-Z0-9]/g, ' '); 

这将用空格replace所有非字母数字字符。

最后的“g”代替所有的事件。

除了指定az(小写)和AZ(大写)外,还可以使用大小写敏感的选项: /[^a-z0-9]/gi

这是太晚了,但由于没有被接受的答案,我想提供我认为最简单的答案:\ D – 匹配所有非数字字符。

 var x = "123 235-25%"; x.replace(/\D/g, ''); 

只是为了让别人看到:

 someString.replaceAll("([^\\p{L}\\p{N}])", " "); 

将删除任何非字母和非数字的Unicode字符。

资源

你试过str = str.replace(/\W|_/g,''); 它会返回一个没有任何字符的string,你可以指定pipe道栏后面的任何特殊字符 抓住他们。

var str = "1324567890abc§$)% John Doe #$@'.replace(/\W|_/g, '');它会返回str = 1324567890abcJohnDoe

或者查找数字和字母,并将其replace为空string(“”):

var str = "1324567890abc§$)% John Doe #$@".replace(/\w|_/g, ''); 它会返回str = '§$)% #$@';

尝试做str.replace(/ [^ \ w] /); 它会取代你的string中的所有非字母和数字!

编辑1: str.replace(/[^\w]/g, ' ')