js实时输入千分符

千分符是常用js片段,一下是实时输入input的千分符片段:

$(document).on('input propertychange', '#cxtcmuch', function(){
     var stmp = "";
     var t =$(this).val();
     if(t==stmp) return;
     var ms = t.replace(/[^\d\.]/g,"").replace(/(\.\d{2}).+$/,"$1").replace(/^0+([1-9])/,"$1").replace(/^0+$/,"0");
     var txt = ms.split(".");
     while(/\d{4}(,|$)/.test(txt[0]))
       txt[0] = txt[0].replace(/(\d)(\d{3}(,|$))/,"$1,$2");
     t = stmp = txt[0]+(txt.length>1?"."+txt[1]:"");
     $(this).val(t);
});

以下是一般千分符输出方法:

function toThousands(num) {
     var num = (num || 0).toString(), result = '';
     while (num.length > 3) {
         result = ',' + num.slice(-3) + result;
         num = num.slice(0, num.length - 3);
     }
     if (num) { result = num + result; }
     return result;
 }

以下是千分符带小数位数的输出方法:

function fmoney(s, n){
    n = n > 0 && n <= 20 ? n : 2;
    s = parseFloat((s + '').replace(/[^\d\.-]/g, '')).toFixed(n) + '';
    var l = s.split('.') [0].split('').reverse(),
    r = s.split('.') [1];
    var t = '';
    for (var i = 0; i < l.length; i++){
          t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? ',' : '');
    }
    return t.split('').reverse().join('') + '.' + r; 
};
    fmoney(3880000,2);(数字,小数位)

参考:

JS实现的4种数字千位符格式化方法分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值