【问题标题】:Allow numbers in regex including the negative允许正则表达式中的数字,包括负数
【发布时间】:2015-08-24 09:00:49
【问题描述】:

我写了这个正则表达式来删除任何不是数字的东西。

     var dataTest = data.replace(/[^0-9]/gi, '');

它将“abc123xyz”转换为“123”

但是现在我也想覆盖负数:-

      var dataTest = data.replace(/[^-0-9]/gi, ''); 

但它也允许介于两者之间。 它将“abc123-xyz”转换为“123-” 我希望它转换为“123”

但是,如果用户给出 "-123abc" ,它应该更改为 "-123"。

我在 javascript 中的 focusout 事件上调用此代码。我也会接受 jquery 中的解决方案。

【问题讨论】:

    标签: javascript jquery regex negative-number


    【解决方案1】:

    一种选择是捕获数字并删除其他所有内容:

    input = "abc-123def"
    
    clean = input.replace(/.*?(-?\d+).*/, "$1")
    
    document.write(clean)

    或者,更有效的是match

     clean = (input.match(/-?\d+/) || [])[0]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多