无小数位的情况
匹配锚点
'123456789'.replace(/(?=\B(\d{3})+\b)/g,',')
匹配千分位数字
'123456789'.replace(/(\d)(?=(\d{3})+\b)/g,'$1,')
有小数位的情况(小数位不需要格式化)
支持后行断言的情况下 V8 引擎 4.9 版(Chrome 62)已经支持。
- 使用后行断言
'123456789.12345678'.replace(/(?<=(^|\s)\d+)(?=(\d{3})+\b)/g, ',');
- 使用后行否定断言
'123456789.12345678'.replace(/(?<!\.\d+)(?=\B(\d{3})+\b)/g, ',');