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

javascript数组-按数字拆分字符串

  •  -6
  • Ood  · 技术社区  · 5 年前

    我有一个未知字符串,其中包含一组数字,如下所示:

    var string = "stuff 1.23! (456) 789 stuff";
    

    我想拆分数组,以便修改数字,然后重新加入数组。我要找的结果应该是这样的:

    var result = ['stuff ', 1.23, '! (', 456, ') ', 789, ' stuff'];
    

    有没有比逐个循环遍历每个字符更好的解决方案?谢谢!

    3 回复  |  直到 5 年前
        1
  •  2
  •   Get Off My Lawn    5 年前

    使用字符类拆分值:

    /(-?[\d.]+)/
    
    • -? 可能从一个负数开始,比如 -123
    • [\d.]+ 有一个或多个数字和小数

    var string = "stuff 1.23! (456) 789 stuff -234".split(/(-?[\d.]+)/);
    
    console.log(string)
        2
  •  1
  •   epascarello    5 年前

    理想的解决方案实际上取决于您对数据的具体操作。一个简单的解决方案是使用replace的正则表达式。

    var string = "stuff 1.23! (456) 789 stuff";
    var updated = string.replace(/\d+(\.\d+)?/g, function (m) {
      console.log(m);
      return "xxx";
    })
    console.log(updated)
        3
  •  -1
  •   Ian    5 年前

    regular expression 是一个表达式,您可以使用它在字符串中搜索数字。 Create a regular expression 它搜索数字序列,您可以使用 split method 在字符串上创建一个字符串数组,就像您指定的那样。