在keyup事件中使用JavaScript添加千位分隔符

在keyup事件中使用JavaScript添加千位分隔符,javascript,jquery,onkeyup,Javascript,Jquery,Onkeyup,我正在使用下面的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.toLocaleStrin

我正在使用下面的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.01),但它确实接受像10.25这样的数字。我想不出这种行为的原因。有什么想法吗


谢谢。

按小数点拆分就行了。像这样的。注:这是非常基本的起点,不考虑其他国家/系统中的不同分离器(即:10.000,00)


var myinput=document.getElementById('myinput');
myinput.addEventListener('keyup',function(){
var val=该值;
val=val.replace(/[^0-9\.]/g');
如果(val!=“”){
valArr=val.split('.');
valArr[0]=(parseInt(valArr[0],10)).tolocalString();
val=valArr.join('.');
}
this.value=val;
});

在小数点上进行拆分将有效。像这样的。注:这是非常基本的起点,不考虑其他国家/系统中的不同分离器(即:10.000,00)


var myinput=document.getElementById('myinput');
myinput.addEventListener('keyup',function(){
var val=该值;
val=val.replace(/[^0-9\.]/g');
如果(val!=“”){
valArr=val.split('.');
valArr[0]=(parseInt(valArr[0],10)).tolocalString();
val=valArr.join('.');
}
this.value=val;
});

解析将删除
0
,因为它没有任何值
1.0
=>
1
解析浮点(x,10)
做什么
parseFloat
没有任何基数参数。。。。因此,添加第二个参数并没有引起任何好奇,什么是千位分隔符?@FlyingGambit tolocalstring()将添加千位分隔符(对我来说“,”)。解析将删除
0
,因为它没有任何值
1.0
=>
1
解析浮点(x,10)
做什么
parseFloat
没有任何基数参数。。。。因此,添加第二个参数并没有引起任何好奇,千位分隔符到底是什么?@FlyingGambit tolocalstring()将添加千位分隔符(对于我“,”)。感谢您的回答,它似乎适用于我的情况。@在输入的15位值变为零后具有创造性。原因是什么?谢谢你的回答,似乎它对我的案例有效。@输入的15位数值变为零后有创意。原因是什么??