如何翻转重复的数字,例如:
999117777774422111
创建输出://
999, 11, 777777, 44, 22, 111
我基本上想要在数字从第i个位置变化时分离值。
答案 0 :(得分:3)
您可以使用正则表达式:/(\d)\1*/g
。
(\d)
表示匹配任何数字,\1*
表示匹配和最初匹配的数字。
// Example:
'999117777774422111'.match(/([0-9])\1*/g)
// Output:
// ["999", "11", "777777", "44", "22", "111"]
console.log('999117777774422111'.match(/([0-9])\1*/g));
答案 1 :(得分:1)
这不是真正的排序,而是更像是比较。
以下是解决方案:
var str = "999117777774422111";
var out = str[0];
for (var i = 1; i < str.length; i++) {
if (str[i] == str[i-1]) {
out += str[i];
} else {
out += ", " + str[i];
}
}
console.log(out);
或将输出作为数组发送:
var str = "999117777774422111";
var out = [str[0]];
var j = 0;
for (var i = 1; i < str.length; i++) {
if (str[i] != str[i-1]) {
j++;
out[j] = "";
}
out[j] += str[i];
}
console.log(out);
答案 2 :(得分:0)
试试这个:
let num='999117777774422111';
let result=num.match(/(\d)\1*/g);
console.log(result);
&#13;