朝花夕拾 · 历史成长档案 · 早期足迹
本文记录于 2017-2019 年早期前端探索时期,保留当时的真实成长轨迹与思考,归档作技术演进参考。
千位符
千位符这样的需求是非常常见的,我一般的处理方式就是 number.toLocaleString()
但是如果用正则我们应该如何来编写代码呢?
123456789 --> 123,456,789我们希望从各位开始每三个前加一个 , 但是如果在最前那么就不加,这里面用的难点的就是零宽断言,其他的就是数字与符号的匹配。
function format(num){
return num && num.toString().replace(/(?=(?!^)(\d{3})+$)/g, ',')
}这样就完成了对整数的千位符处理。如果有小数点的话该如何处理?
function formatFloat(num){
return num && num.toString().replace(/\d+/g, m => m.replace(/(?=(?!^)(\d{3})+$)/g,','))
}先将小数点前的匹配出来进行处理就好。