如何将阿拉伯数字每三位一逗号分隔,如:15000000转化为15,000,000

转自:http://www.cnblogs.com/rubylouvre/p/3738323.html#undefined

1.不带小数点

"15000000".split("").reverse().join("").replace(/(\d{3})/g, "$1,").split("").reverse().join("");

步骤分解:
"15000000".split("")得出[1, 5, 0, ...]
reverse()得出 [0, 0, ... , 5, 1] (防止出现数子个数非3倍数)
join("")得出00000051
replace(/(\d{3})/g, "$1,")得出000,000,51 正则中$1匹配(\d{3}),正好取代3个数字,再加个','则完美替换
把数据恢复原来顺序

"115000000".split("").reverse().join("").replace(/(\d{3})(?=[^$])/g, "$1,").split("").reverse().join("");
'1500000000000'.replace(/\B(?=(\d{3})+$)/g, ',')

2.带小数点

'123123211312.333123'.replace(/(?=(?!^)(?:\d{3})+(?:\.|$))(\d{3}(\.\d+$)?)/g,',$1');
'12000000.11'.replace(/(\d)(?=(\d{3})+\.)/g,'$1,$2,')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。