有没有办法根据值将字符串分成数组?例如,如果我有一个字符串"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
}
答案 0 :(得分:2)
您可以简单地使用正则表达式,例如
console.log("1119994444455".match(/(\d)\1*/g));
// [ '111', '999', '44444', '55' ]
此处,(\d)
捕获一个数字,\1*
匹配相同捕获数量的零次或多次匹配。最后的g
确保我们在找到第一个这样的匹配后不会停止。