我使用过这个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
答案 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插件,因此您无需处理此类正则表达式来格式化您的号码:
另一种解决方法是用
修剪最后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('.')));