我有一个非常大的表单,使用来自数据库的信息构建。
对于所有归类为“数字”的字段,在键上调用一个函数以自动添加千位分隔符。效果很好
function commas(n){
n = n.replace(/,/g, '');
var s=n.split('.')[1];
(s) ? s='.'+s : s='';
n=n.split('.')[0]
while(n.length>3){
s=','+n.substr(n.length-3,3)+s;
n=n.substr(0,n.length-3)
}
return n+s
}
我现在注意到,如果我想将一个小的十进制值放入一个在键上调用它的字段,它会删除句点
2.3 => 23
我看不出这是怎么回事:我在Stack上有人的帮助下写了这个逗号函数。
任何人都可以提供建议吗?感谢
修改
jsfiddle这种现象证明我没有弥补;)
答案 0 :(得分:2)
问题是,只要输入'。',代码就会看到后面没有任何内容并设置s =''。结果是每次输入“。”时,它都会被删除。
尝试这样的事情:
function commas(n) {
n = n.replace(/,/g, '');
var s = n.split('.')[1];
(s)
? s = '.' + s
: n.indexOf('.') >= 0
? s = '.'
: s = '';
n = n.split('.')[0];
while (n.length > 3) {
s = ',' + n.substr(n.length - 3, 3) + s;
n = n.substr(0, n.length - 3);
}
return n + s;
}