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

我需要一个正则表达式,将匹配任何字符,而不是一个字母或数字。一旦找到,我想用一个空白来替换它。

272547 次浏览

要匹配除字母或数字以外的任何东西,你可以尝试这样做:

[^a-zA-Z0-9]

取而代之的是:

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

你要找的是:

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

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

结尾的“ g”代替了所有的出现。

不需要指定 A-Z (小写)和 A-Z (大写) ,您也可以使用区分大小写的选项: /[^a-z0-9]/gi

这个正则表达式匹配任何非字母、数字或下划线(_)字符的内容。

\W

例如在 JavaScript 中:

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

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

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

结果 x: “12323525”

参见 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

你有没有试过 str = str.replace(/\W|_/g,'');它会返回一个字符串没有任何字符,你可以指定如果任何特殊字符后的管道条 |捕捉他们以及。

它将返回 str = 1324567890abcJohnDoe

或者查找数字和字母,并将其替换为空字符串(“”) :

它将返回 str = '§$)% #$@';

只是让别人看看:

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

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

来源

尝试执行 str.place (/[ ^ w ]/) ; 它将替换所有非字母和数字从您的字符串!

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

除了字母、数字或者字母之外,你可以尝试以下方法来匹配 é这样的变音符号:

[^\wÀ-úÀ-ÿ]

取而代之的是:

var str = 'dfj,dsf7é@lfsd .sdklfàj1';
str = str.replace(/[^\wÀ-úÀ-ÿ]/g, '_');

灵感来自顶部的职位与支持的变音符

来源

  • 只匹配字母 /[A-Z]/ig
  • 匹配任何不是字母 /[^A-Z]/ig的东西
  • 匹配号码只有 /[0-9]/g/\d+/g
  • 匹配任何不是数字 /[^0-9]/g/\D+/g的东西
  • 匹配任何不是数字或字母 /[^A-Z0-9]/ig的东西

还有其他可能的模式