有没有一种方法可以根据值将字符串分成数组?例如,如果我有一个字符串"1119994444455"
,如何将其转换为[111, 999,44444,55]
?我尝试这样做,但是我的方法似乎不起作用。
我的代码:
var nums = [];
for(i in input){
i = parseInt(i);
if(i - beforeI != 0 && beforeI >= 0){
insertionIndex++;
}
nums[insertionIndex] += i.toString();
console.log(nums[insertionIndex]);
var beforeI = i
}
最佳答案
您可以像这样简单地使用正则表达式
console.log("1119994444455".match(/(\d)\1*/g));
// [ '111', '999', '44444', '55' ]
在这里,
(\d)
捕获一个数字,并且\1*
匹配零个或多个出现的相同捕获的数字。最后的g
确保我们在找到第一个这样的匹配项后不会停下来。