首页 文章

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

提问于
浏览
84

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

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

任何建议 .

8 回答

  • 1

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

    [^a-zA-Z0-9]
    

    并替换:

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

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

    \W
    

    例如在javascript中:

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

    您正在寻找:

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

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

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

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

  • 132

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

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

    结果在x:“12323525”

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

  • 30

    只为其他人看:

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

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

    Source

  • 3

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

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

  • 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 = '§$)% #$@';

  • 3

    要匹配字母,数字或字母以外的任何字母和变音符号,如 é ,您可以尝试这样:

    [^\wÀ-úÀ-ÿ]
    

    并替换:

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

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

    source

相关问题