我有一个未知字符串,其中包含一组数字,如下所示:
var string = "stuff 1.23! (456) 789 stuff";
我想拆分数组,以便修改数字并稍后重新加入数组。我正在寻找的结果应如下所示:
var result = ['stuff ', 1.23, '! (', 456, ') ', 789, ' stuff'];
有比单独循环遍历每个字符更好的解决方案吗?谢谢!
答案 0 :(得分:2)
使用字符类拆分值:
/(-?[\d.]+)/
-?
可能以负数开头,例如-123
[\d.]+
具有一个或多个数字和小数位
var string = "stuff 1.23! (456) 789 stuff -234".split(/(-?[\d.]+)/);
console.log(string)
答案 1 :(得分:1)
理想的解决方案实际上取决于您对数据的确切处理。一种简单的解决方案是使用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)
答案 2 :(得分:-1)
regular expression是一个表达式,您可以使用它在字符串中搜索数字。 Create a regular expression会搜索数字序列,您将可以在字符串上使用split method来创建与指定字符串相似的字符串数组。