有这样的一系列用分号分开的ip地址
10.92.221.19;10.92.221.20;10.92.221.21;10.92.221.23;10.92.221.24;10.92.221.25;10.92.221.26;10.92.221.27;10.92.221.28;10.92.221.29;10.92.221.30;10.92.221.31;10.92.221.32
现在需要将连续的ip地址进行优化显示,变成
10.92.221.19-21;10.92.221.23-32
有这样的一系列用分号分开的ip地址
10.92.221.19;10.92.221.20;10.92.221.21;10.92.221.23;10.92.221.24;10.92.221.25;10.92.221.26;10.92.221.27;10.92.221.28;10.92.221.29;10.92.221.30;10.92.221.31;10.92.221.32
现在需要将连续的ip地址进行优化显示,变成
10.92.221.19-21;10.92.221.23-32
js
let str = '10.92.221.19;10.92.221.20;10.92.221.21;10.92.221.23;10.92.221.24;10.92.221.25;10.92.221.26;10.92.221.27;10.92.221.28;10.92.221.29;10.92.221.30;10.92.221.31;10.92.221.32'
let arr = str.split(';');
let strs = '';
let num = 0;
arr.forEach((val,index) => {
let number = Number(val.replace(/./g, ''));
if (index === 0) {
strs += val + '-';
num = number
} else if (index === arr.length - 1) {
strs += val
} else {
if (num !== number - index) {
strs += arr[index-1] + ';' + val + '-'
num = number - index
}
}
})
console.log(strs);