1:正则表达式和replace函数
function numFormat(num){
var res=num.toString().replace(/d+/, function(n){ // 先提取整数部分
return n.replace(/(d)(?=(d{3})+$)/g,function($1){
return $1+",";
});
})
return res;
}
console.log(numFormat(1234567.90)) // 1,234,567.9
2:js自带函数toLocaleString() // 输入字符串类型
const a = 1234567891000;
const b = 673439.4542;
console.log(a.toLocaleString()); // "1,234,567,891,000"
console.log(b.toLocaleString()); // "673,439.454" (小数部分四舍五入了)
3:先转字符串--》转数组---》反转---》三位加逗号----》反转----》转字符串-----》实现
function numFormat(num){
num=num.toString().split("."); // 分隔小数点
var arr=num[0].split("").reverse(); // 转换成字符数组并且倒序排列
var res=[];
for(var i=0,len=arr.length;i<len;i++){
if(i%3===0&&i!==0){
res.push(","); // 添加分隔符
}
res.push(arr[i]);
}
res.reverse(); // 再次倒序成为正确的顺序
if(num[1]){ // 如果有小数的话添加小数部分
res=res.join("").concat("."+num[1]);
}else{
res=res.join("");
}
return res;
}
var a=1234567894532;
var b=673439.4542;
console.log(numFormat(a)); // "1,234,567,894,532"
console.log(numFormat(b)); // "673,439.4542"