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

时间:2010-06-07 17:57:47

标签: javascript regex

我正在试图找出匹配任何不是字母或数字的字符的正则表达式。所以字符如(,, @,£,()等......

一旦找到,我想用空格替换它。

任何建议。

9 个答案:

答案 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)

仅供其他人查看:

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

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

Source

答案 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, '_');

受到支持变音符号的顶级帖子的启发

source