js实现千分位

1. 正则表达式

function format(num){
    var reg = /\d{1,3}(?=(\d{3})+$)/g
    return (num + '').replace(reg,'$&,') 
}

解释:

  1. 正则表达式 \d{1,3}(?=(\d{3})+$)表示前边有1~3个数字,后边的至少由一组3个数字结尾
  2. ?=表示 正向引用,可以作为匹配的条件,但是并不获取这些内容,并作为下一次查询的开始
  3. $&表示与正则表达式相匹配的内容

运行过程:

image.png

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('')
}
image.png

JS实现千分位

你可能感兴趣的:(js实现千分位)