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

Javascript 正则表达式:不是字母或数字的任何字符,javascript,regex,Javascript,Regex,我试图找出一个正则表达式,它将匹配任何不是字母或数字的字符。所以像(,@,()等字符 一旦找到,我想用一个空白来代替它 任何建议。要匹配字母或数字以外的任何内容,您可以尝试以下方法: [^a-zA-Z0-9] [^\wÀ-úÀ-ÿ] 并取代: var str = 'dfj,dsf7lfsd .sdklfj'; str = str.replace(/[^A-Za-z0-9]/g, ' '); var str = 'dfj,dsf7é@lfsd .sdklfàj1'; str = str.re

我试图找出一个正则表达式,它将匹配任何不是字母或数字的字符。所以像(,@,()等字符

一旦找到,我想用一个空白来代替它


任何建议。

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

[^a-zA-Z0-9]
[^\wÀ-úÀ-ÿ]
并取代:

var str = 'dfj,dsf7lfsd .sdklfj';
str = str.replace(/[^A-Za-z0-9]/g, ' ');
var str = 'dfj,dsf7é@lfsd .sdklfàj1';
str = str.replace(/[^\wÀ-úÀ-ÿ]/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,”);
您是否尝试过
str=str。replace(/\W | |/g,”);
它将返回一个不带任何字符的字符串,您可以指定在管道条
后面是否有任何特殊字符来捕获它们

var str=“1324567890abc§$)%John Doe#$@。replace(/\W |(ug),)
它将返回
str=1324567890abcJohnDoe

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


var str=“1324567890abc§$)%John Doe#$@。replace(/\w |(ug),)
它将返回
str='§$)%#$@

,供其他人查看:

someString.replaceAll("([^\\p{L}\\p{N}])", " ");
将删除任何非字母和非数字unicode字符

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


编辑1:
str.replace(/[^\w]/g,”)
要匹配字母、数字以外的任何内容,或字母与变音符号,如
,您可以尝试以下操作:

[^a-zA-Z0-9]
[^\wÀ-úÀ-ÿ]
并取代:

var str = 'dfj,dsf7lfsd .sdklfj';
str = str.replace(/[^A-Za-z0-9]/g, ' ');
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

还有其他可能的模式

它也会匹配空格吗?我需要保留空格。谢谢。空格字符会匹配,但随后会被空格字符替换,因此实际上它会将它们单独保留(空格将保留空格)。我相信他正在寻找/(| W)/g,以匹配任何不是数字或字母的东西(英语)@sbmaxx我想替换除&,(,)以外的所有字符。我如何在当前正则表达式中添加此条件。
\w
用于单词字符,与
[a-zA-Z0-9_z]
完全相同(请注意,下划线被视为单词字符。)…因此缩写应该是
str.replace(/[^\w]/g.))
但它也会包含许多unicode字母!有没有办法排除unicode字母?要包含unicode字符,您可以使用[^\p{L}0-9]@Dave:从2018年起,您不能没有多边形填充,显然……有没有办法用空格代替repalce…替换为“\“然后是已识别的字符?这样:将这个dfj,dsf7lfsd.sdklfj转换成这个dfj\,dsf7lfsd\.sdklfj?一个有效的答案是
str.replace(/[^\w]/g',)
。如果不包含
/g
标记,则它将仅替换第一次出现的标记。如果你没有定义替换字符串,这里有一个空格
'
,它将替换为
未定义的
。最后,下划线不会被替换,因为它们匹配
\w
。这个答案并不完美。我不确定这两个UpVote是从哪里来的,但在JavaScript(这个问题所涉及的)中没有
replaceAll
,而且
\p{..}
属性转义没有广泛实现。