JS 将数字转成千分位的方法

例如:请将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个数字,然后隔三个数字必会出现下一个,符号,最后加上$结束符号。
  • ()代表分组,也就是replacefunction中的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

你可能感兴趣的:(JS 将数字转成千分位的方法)