1. 正则表达式
function format(num){
var reg = /\d{1,3}(?=(\d{3})+$)/g
return (num + '').replace(reg,'$&,')
}
解释:
- 正则表达式
\d{1,3}(?=(\d{3})+$)
表示前边有1~3个数字,后边的至少由一组3个数字结尾 -
?=
表示 正向引用,可以作为匹配的条件,但是并不获取这些内容,并作为下一次查询的开始 -
$&
表示与正则表达式相匹配的内容
运行过程:
2. for循环正常思维法
function format(num){
num = num + ''//把数字转化为字符串
var str = ''//用于字符串累加
for(var i = num.length-1,j=1;i>=0;i--,j++){
if(j % 3 === 0 && i !== 0){//每隔3位加逗号
str += num[i] + ','//加千分号符号位
continue
}
str += num[i]//倒着累加数字
}
return str.split('').reverse().join('')
}