千位符
千位符这样的需求是非常常见的,我一般的处理方式就是 number.toLocaleString()
但是如果用正则我们应该如何来编写代码呢?
123456789 --> 123,456,789
我们希望从各位开始每三个前加一个 ,
但是如果在最前那么就不加,这里面用的难点的就是零宽断言,其他的就是数字与符号的匹配。
javascript
function format(num){
return num && num.toString().replace(/(?=(?!^)(\d{3})+$)/g, ',')
}
这样就完成了对整数的千位符处理。如果有小数点的话该如何处理?
javascript
function formatFloat(num){
return num && num.toString().replace(/\d+/g, m => m.replace(/(?=(?!^)(\d{3})+$)/g,','))
}
先将小数点前的匹配出来进行处理就好。