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

 

// 方法一

function toThousands(num) {

    var result = [ ], counter = 0;

    num = (num || 0).toString().split('');

    for (var i = num.length - 1; i >= 0; i--) {

        counter++;

        result.unshift(num[i]);

        if (!(counter % 3) && i != 0) { result.unshift(','); }

    }

    return result.join('');

}

 

 

// 方法二

function toThousands(num) {

    var result = '', counter = 0;

    num = (num || 0).toString();

    for (var i = num.length - 1; i >= 0; i--) {

        counter++;

        result = num.charAt(i) + result;

        if (!(counter % 3) && i != 0) { result = ',' + result; }

    }

    return result;

}

 

 

// 方法三

function toThousands(num) {

    var num = (num || 0).toString(), re = /\d{3}$/, result = '';

    while ( re.test(num) ) {

        result = RegExp.lastMatch + result;

        if (num !== RegExp.lastMatch) {

            result = ',' + result;

            num = RegExp.leftContext;

        } else {

            num = '';

            break;

        }

    }

    if (num) { result = num + result; }

    return result;

}

 

 

// 方法四

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 toThousands(num) {

    var num = (num || 0).toString(), temp = num.length % 3;

    switch (temp) {

        case 1:

            num = '00' + num;

            break;

        case 2:

            num = '0' + num;

            break;

    }

    return num.match(/\d{3}/g).join(',').replace(/^0+/, '');

}

 

 

// 方法六

function toThousands(num) {

    return (num || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,');

}

 

posted @ 2017-12-07 14:02  xjt360  阅读(822)  评论(0编辑  收藏  举报