需求是从右往左,每逢3个数字加一个逗号,再逢2个数字加一个逗号,如此循环。比如123456789,处理后变成1,234,56,789
var origStr="123456789";
var result="";
result=splitNumber(origStr);
console.log(result);
function splitNumber(s){
var sArr=s.split("").reverse();
var b=[];
for(var i=0;i<sArr.length;i++){
if(i!=0 && (i%5==0 || i%5==3)){
b.push(",");
b.push(sArr[i]);
}
else
b.push(sArr[i]);
}
return b.reverse().join("");
}
function change(num,bool){
function tho(num){return num>1000?String(num).slice(-5,-3)+','+String(num).slice(-3):num}
return num<100000?tho(num):change(parseInt(num/100000))+","+tho(num)
}
function splitNumbers(s) {
return s.replace(/(?<=\d)(?=(\d{3})+$)/g, ',')
}
splitNumbers('2324243234') // "2,324,243,234"
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
使用正则实现, 一行完成功能。