常常见到这种场景,数字比较大时每隔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);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。