我有一个包含数字的文本框,每次我添加数字时,它都会格式化我的数字,添加逗号“onblur”事件,效果很好。但是当我在数字已经格式化的情况下添加一个数字时,逗号不在正确的位置并且有时会添加一个零。如果我添加 1000000 其格式为 1,000,000 但如果我添加或编辑 1,000,0002 其最终结果是1,000,0,002。
JQUERY
function addCommas(nStr)
{
nStr += '';
x = nStr.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return x1 + x2;
}
$("#mytextbox").blur(function(){
this.value = addCommas(this.value.replace(',', ''));
});
最佳答案
replace(',', '')
仅将第一个逗号替换为空。您需要全局逗号替换。尝试更改此行
this.value = addCommas(this.value.replace(',', ''));
对此:
this.value = addCommas(this.value.replace(/,/g, ''));
关于javascript - Jquery在数字中添加逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36403626/