千分位
有些时候,我们需要将数字转为千分位分割展示:
'123456789.1234'.replace(/^(\d+)((\.\d+)?)$/, (s, s1, s2) => s1.replace(/(\d{1,3})(?=(\d{3})+$)/g, '$&,') + s2) // '123,456,789.1234'
有特殊需求时,还可以把 3 改为动态数字,通过 new RegExp()
的方式,动态生成正则即可。
切掉小数末尾的0
有些时候,我们需要去掉数字后面多余的0,以保持展示的最短效果。
通常数字保留两位,最简单的方式:
'1.20'.replace(/(\.[1-9]+)0+$|\.0*$/, '$1') // 1.2
'0.00'.replace(/(\.[1-9]+)0+$|\.0*$/, '$1') // 0
这种方式仅仅适用于保留两位小数以后再切掉多余的0。
有一些时候,小数位可能会更多,此时,这个正则就不适用了:
'1.1010'.replace(/(\.[1-9]+)0+$|\.0*$/, '$1') // 1.1010
修改一下正则:
'1.1010'.replace(/(\.\d+[1-9]{1})0+$|\.0*$/, '$1') // 1.101
文章评论