正则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, ' ')