3位数后用逗号输出数字

时间:2016-01-27 22:09:16

标签: javascript jquery

我使用过这个jQuery代码

jQuery.fn.digits = function(){ 
    return this.each(function(){ 
        jQuery(this).text( $(this).text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") ); 
    })
}

号码150000 我希望它像150,000

一样

但输出的是:150,000.00

我不想要这些额外的.00

3 个答案:

答案 0 :(得分:2)

我发现for循环比正则表达式更容易理解。

function addCommas(num) {
    var characters = parseInt(num, 10).toString();
    var output = '';
    for (var offset = characters.length; offset > 0; offset -= 3) {
        output = characters.slice(Math.max(offset - 3, 0), offset) + (output ? ',' + output : '');
    }
    return output;
}

答案 1 :(得分:1)

您可以使用JQuery Number Formatter插件,因此您无需处理此类正则表达式来格式化您的号码:

Jquery Number Formatter

另一种解决方法是用

修剪最后3个字符
$(this).text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,").slice(0,-3)

答案 2 :(得分:0)

在你的正则表达式之前尝试Math.round然后在子串之后 - 这是未经测试的

var newnumber = Math.round(parseInt($(this).text());
var withcommas = newnumber.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
$(this).text(withcommas.substring(0, s.indexOf('.')));