【问题标题】:get number only in javascript [duplicate]仅在javascript中获取数字[重复]
【发布时间】:2013-07-14 03:46:04
【问题描述】:

我有一串喜欢

AA-12,AB-1,AC-11,AD-8,AE-30

我只想从这个字符串中获取数字

12,1,11,8,30

我怎样才能使用 JavaScript 获得这个?谢谢:)

【问题讨论】:

    标签: javascript string


    【解决方案1】:

    使用正则表达式,例如

    var numbers = yourString.match(/\d+/g);
    

    numbers 然后将是字符串中的数字字符串数组,例如

    ["12", "1", "11", "8", "30"]
    

    【讨论】:

    • 您好像忘记了使用逗号分隔符加入
    • @FSou1 我什么都没忘记。数组更容易使用,并且可以使用 numbers.join(',') 轻松转换为逗号分隔的字符串
    【解决方案2】:

    如果你想要一个字符串作为结果

    'AA-12,AB-1,AC-11,AD-8,AE-30'.replace(/[^0-9,]/g, '')
    

    【讨论】:

      【解决方案3】:
      var t = "AA-12,AB-1,AC-11,AD-8,AE-30";
      alert(t.match(/\d+/g).join(','));
      

      工作示例: http://jsfiddle.net/tZQ9w/2/

      【讨论】:

        【解决方案4】:

        如果这正是您的输入的样子,我会拆分字符串并仅使用数字创建一个数组:

        var str = "AA-12,AB-1,AC-11,AD-8,AE-30";
        var nums = str.split(',').map(function (el) {
            return parseInt(el.split('-')[1], 10);
        });
        

        拆分通过分隔符拆分字符串,在本例中为逗号。返回的值是一个数组,我们将把它映射到我们想要的数组中。在里面,我们将拆分连字符,然后确保它是一个数字。

        输出:

        nums === [12,1,11,8,30];
        

        我完全没有进行任何完整性检查,因此您可能需要对照正则表达式对其进行检查:

        /^(\w+-\d+,)\w+-\d+$/.test(str) === true
        

        您可以在任何类似的解析问题中遵循相同的模式。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-11-01
          • 1970-01-01
          • 2021-11-29
          • 1970-01-01
          • 2013-03-29
          • 2014-02-05
          • 1970-01-01
          • 2021-09-14
          相关资源
          最近更新 更多