【问题标题】:Remove non numeric characters except dash删除除破折号以外的非数字字符
【发布时间】:2014-10-05 22:16:23
【问题描述】:

我需要删除除破折号以外的所有非数字字符。 这是我的尝试(基于:Regex to get all alpha numeric fields except for comma, dash and single quote):

var stripped = mystring.replace(/[-0-9]+/g, '');

但这不起作用:-(

【问题讨论】:

    标签: javascript


    【解决方案1】:

    我建议:

    var stripped = string.replace(/[^0-9-]/g,'');
    

    JS Fiddle demo

    字符类中的^(在[] 中)是NOT 运算符,因此它匹配以下字符不是0-9 或(转义的)- 字符。

    正如Ted Hopp对此答案的评论中所指出的那样,当-是最后一个字符时,没有必要转义它,但我习惯性地这样做是为了省去记住该附带条件。

    参考:

    【讨论】:

    • 当它是类中的最后一个字符时,无需转义破折号。此外,0-9 可以替换为d。正则表达式可以是/[^d-]/g
    • 谢谢,我已经在答案中添加了该注释,但是,正如还指出的那样,我总是避开破折号以避免必须记住附带条件(只有在最后一堂课时才能取消转义)。我真的很懒... ;)
    • @TedHopp 不需要 ^ 只需使用 D
    • @java-addict301 - - 怎么样?这也需要不匹配。
    猜你喜欢
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    相关资源
    最近更新 更多