添加逗号或空格,以将每三位数字分组
- 论坛
- 添加逗号或空格,以将每三位数字分组
16 浏览
添加逗号或空格,以将每三位数字分组
我有一个函数可以给数字添加逗号:
function commafy( num ) { num.toString().replace( /\B(?=(?:\d{3})+)$/g, "," ); }
不幸的是,它对小数处理不太好。根据以下使用示例,扩展我的函数的最佳方法是什么?
commafy( "123" ) // "123" commafy( "1234" ) // "1234" // 不要在整数位数不足5位之前添加逗号 commafy( "12345" ) // "12,345" commafy( "1234567" ) // "1,234,567" commafy( "12345.2" ) // "12,345.2" commafy( "12345.6789" ) // "12,345.6789" // 再次,直到整数位数达到5位之前不添加 commafy( ".123456" ) // ".123 456" // 用空格分组(没有前导数字) commafy( "12345.6789012345678" ) // "12,345.678 901 234 567 8"
最简单的方法可能是先根据小数点拆分(如果有的话)。从那里最好继续做些什么呢?