有没有一种方法可以根据值将字符串分成数组?例如,如果我有一个字符串"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确保我们在找到第一个这样的匹配项后不会停下来。

08-19 08:15