【问题标题】:Regex remove all special characters except numbers?正则表达式删除除数字以外的所有特殊字符?
【发布时间】:2014-01-10 23:43:54
【问题描述】:

我想从字符串中删除所有特殊字符(数字除外)。我已经能够做到这一点

var name = name.replace(/[^a-zA-Z ]/, "");

但似乎它正在删除第一个数字并留下所有其他数字。

例如:

name = "collection1234"; //=> collection234

name = "1234567"; //=> 234567

【问题讨论】:

  • 所有角色都有自己的特殊之处,这是妈妈一直告诉我的。 “特殊字符”对您意味着什么?
  • @sln,你是什么意思?

标签: javascript regex


【解决方案1】:

使用全局标志:

var name = name.replace(/[^a-zA-Z ]/g, "");
                                    ^

如果您不想删除数字,请将其添加到类中:

var name = name.replace(/[^a-zA-Z0-9 ]/g, "");

【讨论】:

  • 我想我问错了,我想在字符串中保留所有数字,但只去除特殊字符,如! @ # $ % ^ & * ( 所以collection#24 would return collection24
  • @EHerman 忘记你想要删除的字符。 “特殊字符”非常不精确。您要保留哪些字符?
  • [^\w_ ] 应该和 [^a-zA-Z0-9 ] 差不多
  • @EHerman 我现在有点迷茫了。这对你有用吗?乔尼,是的,这是一个选择。
【解决方案2】:

要删除特殊字符,请尝试

var name = name.replace(/[!@#$%^&*]/g, "");

【讨论】:

  • +1 - 答案。尽管如此,使用+ 修饰符会更有效。
  • 这不会删除空格!!
【解决方案3】:

如果您不介意将下划线作为允许的字符,您可以简单地尝试:

result = subject.replace(/\W+/g, "");

如果还必须排除下划线,则

result = subject.replace(/[^A-Z0-9]+/ig, "");

(注意不区分大小写的标志)

【讨论】:

    【解决方案4】:

    删除符号使用标签 [ ]

    步骤:1

    []
    

    第 2 步:放置您要删除的符号,例如:@ 像 [@]

    [@]
    

    第 3 步:

    var name = name.replace(/[@]/g, "");
    

    就是这样

    var name="ggggggg@fffff"
    var result = name.replace(/[@]/g, "");
    console .log(result)

    额外提示

    删除空格(在方括号中留一个空格,如 []=>[ ])

    [@ ]
    

    它删除一切(使用除外)

    [^place u dont want to remove]
    

    例如:我删除了除字母表(小号和大写字母)之外的所有内容

    [^a-zA-Z ]
    

    var name="ggggg33333@#$%^&**I(((**gg@fffff"
    var result = name.replace(/[^a-zA-Z]/g, "");
    console .log(result)

    【讨论】:

      【解决方案5】:

      这应该也可以

      text = '汽车?又大又*红!'

      newtext = re.sub('[^a-z0-9]', ' ', text)

      打印(新文本)

      这辆车又大又红

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-11
        • 1970-01-01
        • 2016-05-26
        • 1970-01-01
        • 1970-01-01
        • 2011-03-19
        • 1970-01-01
        相关资源
        最近更新 更多