JS-千分位格式化数据

JS中千分位格式化数据

功能描述:将给定的数字转化为千分位的格式,如把12345678转化为12,345,678

实现方法如下
  1. 利用正则实现
function toThousands(num){
    let str = num.toString();
    return str.replace(/(\d)(?=(?:\d{3})+$)/g, "$1,");
}
toThousands(123);  //123
toThousands(1234546); //123,456
toThousands(12345678); //12,345,678
  1. 字符串拆分拼接:讲数字转换成数组,再通过循环,逐个倒序unshift把元素推进新数组,当为三的倍数次,就插入逗号,最后把新数组拼接成一个字符串。(缺点:一位一位的加进去,性能差,且还要先转换成字符串再转换成数组。)
function toThousands(num){
    let numArr = num.toString().split("");
    let arr = [];
    let count = 0; //用于计数
    for(let i=numArr.length-1; i>=0; i--){
        count++;
        arr.unshift(numArr[i]);
        if(!(count%3)&&i!==0) arr.unshift(",");
    }
    return arr.join("");
}
  1. 每截取三位进行拼接:每次取末尾三位子字符串放到一个新的空字符串里并拼接上之前的末三位,原本字符串要不断截取直到长度小于三位,最后再拼接在一起。
function toThousands(num){
    let str = num.toString();
    let res = ""; //用于接收拼接后的新字符串
    while(str.length > 3){
        res = "," + str.slice(-3) + res;
        str = str.slice(0, str.length-3);
    }
    return str + res;   
}
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值