数字的千位分隔符实现

常常见到这种场景,数字比较大时每隔3位用逗号分隔开

思路就是如果是小数的话先用split分开得到整数部分,然后反转整数部分的字符串用正则每3个数字加一个逗号然后再反转回去拼接上小数部分。

在网上看到了一种实现代码,这个正则还没看懂:

function toThousands(str) {
    return str.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
toThousands('12345678912.12345');
toThousands('12345678912');

以下是我的实现代码


  function fillNumberWithComma(num) {
        num += '';
        if(/^-?\d+(\.\d+)?$/.test(num)) {   //确认是数字
            var segments = num.split('.');
            return segments[0].split('').reverse().join('').replace(/(\d{3})/g, '$1,').split('').reverse().join('') + (segments[1] ? '.' + segments[1] : '');
        }
        return false;
    }
    
    fillNumberWithComma(12345678.12345);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值