例如:请将10000000.01转成10,000,000.01
1. 正则转换【正整数】
只能用于正整数,不能有小数位
str.replace(/\d{1,3}(?=(\d{3})+$)/g,function(s){
return s+','
})
输入为:let str = "1000000"
[输入为string]
输出结果为:"1,000,000"
解析:
- 利用零宽度正预测先行断言(?=exp)(它断言自身出现的位置的后面能匹配表达式exp)。
-
/\d{1,3}(?=(\d{3})+$)/g
这段话的意思是,
符号前必然会出现1-3个数字,然后隔三个数字必会出现下一个,
符号,最后加上$
结束符号。 -
()
代表分组,也就是replace
的function
中的s
,将s
替换成s+','
。
2. num.toLocaleString('en-US')
只能用于数字
num.toLocaleString('en-US')
输入为:1000000.01
[输入为num]
输出结果为:1,000,000.01
3. 转成数组翻转
str.split(".")[0].split("").reverse().join("").replace(/(\d{3})+?/g,function(s){
return s+","
}).split("").reverse().join("")+'.'+str.split('.')[1]
适配了小数点
输入为:1000000.0001
输出结果为:1,000,000.0001