适用于所有浏览器,这就是您所需要的。
function commaSeparateNumber(val){
while (/(\d+)(\d{3})/.test(val.toString())){
val = val.toString().replace(/(\d+)(\d{3})/, '$1'+','+'$2');
}
return val;
}
由于正则表达式,因此将其编写得紧凑且切中要害。这是直接的 JS,但您可以像这样在 jQuery 中使用它:
$('#elementID').html(commaSeparateNumber(1234567890));
或者
$('#inputID').val(commaSeparateNumber(1234567890));
但是,如果您需要更清洁、更灵活的东西。下面的代码将正确修复小数,删除前导零,并且可以无限使用。感谢评论中的@baacke。
function commaSeparateNumber(val){
val = val.toString().replace(/,/g, ''); //remove existing commas first
var valRZ = val.replace(/^0+/, ''); //remove leading zeros, optional
var valSplit = valRZ.split('.'); //then separate decimals
while (/(\d+)(\d{3})/.test(valSplit[0].toString())){
valSplit[0] = valSplit[0].toString().replace(/(\d+)(\d{3})/, '$1'+','+'$2');
}
if(valSplit.length == 2){ //if there were decimals
val = valSplit[0] + "." + valSplit[1]; //add decimals back
}else{
val = valSplit[0]; }
return val;
}
在你的 jQuery 中,像这样使用:
$('.your-element').each(function(){
$(this).html(commaSeparateNumber($(this).html()));
});
这是jsFiddle。