我正在试图找出匹配任何不是字母或数字的字符的正则表达式。所以字符如(,, @,£,()等......
一旦找到,我想用空格替换它。
任何建议。
答案 0 :(得分:136)
要匹配除字母或数字以外的任何内容,您可以尝试:
[^a-zA-Z0-9]
并替换:
var str = 'dfj,dsf7lfsd .sdklfj';
str = str.replace(/[^A-Za-z0-9]/g, ' ');
答案 1 :(得分:31)
此正则表达式不匹配字母,数字和下划线字符。
\W
例如在javascript中:
"(,,@,£,() asdf 345345".replace(/\W/g, ' ');
答案 2 :(得分:18)
您正在寻找:
var yourVar = '1324567890abc§$)%';
yourVar = yourVar.replace(/[^a-zA-Z0-9]/g, ' ');
这会用空格替换所有非字母数字字符。
末尾的“g”取代所有出现的内容。
您还可以使用区分大小写的选项/[^a-z0-9]/gi
,而不是指定a-z(小写)和A-Z(大写)。
答案 3 :(得分:7)
这太晚了,但由于没有接受的答案,我想提供我认为最简单的答案:\ D - 匹配所有非数字字符。
var x = "123 235-25%";
x.replace(/\D/g, '');
结果x:“12323525”
请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
答案 4 :(得分:5)
/[A-Z]/ig
/[^A-Z]/ig
/[0-9]/g
或/\d+/g
/[^0-9]/g
或/\D+/g
的任何东西/[^A-Z0-9]/ig
还有其他可能的模式
答案 5 :(得分:3)
答案 6 :(得分:3)
尝试做str.replace(/ [^ \ w] /); 它将替换你的字符串中的所有非字母和数字!
编辑1:str.replace(/[^\w]/g, ' ')
答案 7 :(得分:1)
您是否尝试过str = str.replace(/\W|_/g,'');
它会返回一个没有任何字符的字符串,您可以指定管道栏|
之后是否有任何特殊字符来捕获它们。
var str = "1324567890abc§$)% John Doe #$@'.replace(/\W|_/g, '');
它将返回str = 1324567890abcJohnDoe
或查找数字和字母并将其替换为空字符串(“”):
var str = "1324567890abc§$)% John Doe #$@".replace(/\w|_/g, '');
它将返回str = '§$)% #$@';
答案 8 :(得分:1)
要与é
之类的变音符号匹配除字母,数字或字母以外的任何内容,您可以尝试:
[^\wÀ-úÀ-ÿ]
并替换:
var str = 'dfj,dsf7é@lfsd .sdklfàj1';
str = str.replace(/[^\wÀ-úÀ-ÿ]/g, '_');
受到支持变音符号的顶级帖子的启发