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

Jam*_*ery 96 javascript regex

我试图弄清楚正则表达式将匹配任何不是字母或数字的字符.所以字符如(,, @,£,()等...

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

任何建议.

Dar*_*rov 144

要匹配除字母或数字以外的任何内容,您可以尝试:

[^a-zA-Z0-9]
Run Code Online (Sandbox Code Playgroud)

并替换:

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

  • `\ w`用于Word字符,与`[a-zA-Z0-9_]`完全相同(注意下划线被认为是单词字符.)...所以简写为`str.replace(/ [^\w]/g,'')` (14认同)
  • 要包含 unicode 字符,您可以使用 [^\p{L}0-9] (2认同)

小智 33

此正则表达式不匹配字母,数字和下划线字符.


\W

例如在javascript中:


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

  • ...或/ [\ W _] /也许 (5认同)

fav*_*avo 17

您正在寻找:

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

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

最后的"g"替换所有出现的内容.

除了指定AZ(小写)和AZ(大写),你也可以使用区分大小写的选项:/[^a-z0-9]/gi.


tob*_*not 9

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

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

结果在x:"12323525"

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


You*_*gla 9

  • 仅匹配字母 /[A-Z]/ig
  • 匹配任何非字母 /[^A-Z]/ig
  • 仅匹配号码/[0-9]/g/\d+/g
  • 匹配任何非数字/[^0-9]/g/\D+/g
  • 匹配任何非数字或字母 /[^A-Z0-9]/ig

还有其他可能的模式


小智 5

仅供其他人查看:

someString.replaceAll("([^\\p{L}\\p{N}])", " ");
Run Code Online (Sandbox Code Playgroud)

将删除所有非字母和非数字 unicode 字符。

来源


aay*_*shi 5

尝试做str.replace(/ [^ \ w] /); 它将替换字符串中的所有非字母和数字!

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

  • 一个有效的答案应该是`str.replace(/ [^ \ w] / g,'')`。如果您不包含`/ g`标志,它将仅替换第一次出现的标志。而且,如果您没有定义替换字符串,这里是一个空格'''`,它将在整个位置被`undefined`替换。最后,下划线将不会被替换,因为它们与`\ w`相匹配。这个答案不是一个完美的选择。 (2认同)