我正在使用以下JavaScript函数为 keyup 事件中的输入数字添加千位分隔符。
$("#inputId").on('keyup', function(evt){
if (evt.which != 110 && evt.which != 190){
var n = parseFloat($(this).val().replace(/\,/g,''),10);
$(this).val(n.toLocaleString());
}
});
大多数情况下此函数按预期工作,但唯一的问题是输入字段在小数点后不接受零(例如10. 0 1)但它确实接受数字像10. 2 5。我无法弄清楚这种行为的原因。有什么想法吗?
感谢。
答案 0 :(得分:2)
按小数分割是有效的。像这样的东西。请注意,这是非常基本的起点,并不考虑其他国家/系统中的不同分隔符(即:10.000,00)
<script>
var myinput = document.getElementById('myinput');
myinput.addEventListener('keyup', function() {
var val = this.value;
val = val.replace(/[^0-9\.]/g,'');
if(val != "") {
valArr = val.split('.');
valArr[0] = (parseInt(valArr[0],10)).toLocaleString();
val = valArr.join('.');
}
this.value = val;
});
</script>
<input id="myinput" type="text'>