我正在尝试格式化数字,使它们在每3个数字之间有逗号。然而,它非常不可靠,一旦达到8个数字就不能工作。我已经将所有代码放在下面的jsfiddle中:
function commaSeparateNumber(val){
val = val.replace(',', '');
var array = val.split('');
var index = -3;
while (array.length + index > 0) {
array.splice(index, 0, ',');
// Decrement by 4 since we just added another unit to the array.
index -= 4;
}
return array.join('');
};
$(document).on('keyup', '.test', function() {
var value = $(this).val();
value = commaSeparateNumber(value);
$(this).val(value);
});
如有任何帮助,我们不胜感激!
发布于 2016-12-08 16:23:50
发布于 2013-06-04 02:08:39
您的问题是,当您到达第8位时,中间结果中已经有两个逗号。然而,
val = val.replace(',', '');
只替换第一个。您需要提供一个设置了global标志的正则表达式:
val = val.replace(/,/g, '');
发布于 2020-05-08 19:45:47
var number = 1000000;
console.log(new Intl.NumberFormat().format(number));
// 1,000,000
您的问题的解决方案:https://jsfiddle.net/mf2s48jo/
https://stackoverflow.com/questions/16902924
复制相似问题