代码之家  ›  专栏  ›  技术社区  ›  webHasan

使用拆分方法[重复]通过正则表达式从字符串中收集数字

  •  0
  • webHasan  · 技术社区  · 7 年前

    我喜欢从字符串中收集数字到数组中。我尝试了以下方法,但在Javascript中并没有得到预期的结果。我该怎么做?

    'This is string 9, that con 9 some 12, number rally awesome 8'.split(/[^\d+]/);
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Jeffery Thomas    7 年前

    我假设这是JavaScript而不是Swift。

    'This is string 9, that con 9 some 12, number rally awesome 8 extra'.
    split(/[^\d]+/);
    

    生产

    [ '', '9', '9', '12', '8', '' ]
    

    正如您所看到的,它在很大程度上帮助您实现了这一点,但是可能有一个前导和尾随的空字符串。

    过滤器可以解决此问题。

    'This is string 9, that con 9 some 12, number rally awesome 8 extra'.
    split(/[^\d]+/).
    filter(function(number) { return number.length > 0 });
    

    生成您要查找的答案。

    [ '9', '9', '12', '8' ]
    

    或者如果您正在使用ES6。

    'This is string 9, that con 9 some 12, number rally awesome 8 extra'.
    split(/[^\d]+/).
    filter(number => number.length > 0);