经常见到这种场景,数字比较大时每隔3位用逗号分隔开code
思路就是若是是小数的话先用split分开获得整数部分,而后反转整数部分的字符串用正则每3个数字加一个逗号而后再反转回去拼接上小数部分。字符串
在网上看到了一种实现代码,这个正则还没看懂:it
function toThousands(str) { return str.replace(/\B(?=(\d{3})+(?!\d))/g, ","); } toThousands('12345678912.12345'); toThousands('12345678912');
如下是个人实现代码io
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);