我有一个很大的表单,它是使用数据库中的信息构建的。
对于所有被归类为"数字"的字段,在key up上调用一个函数来自动添加千个分隔符。运行良好
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上的某个人的帮助下编写了这个逗号函数。
有人能提出建议吗?感谢
编辑:
这个现象证明我不是在编的;)
问题是,只要输入'.',代码看到后面没有任何内容,并设置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;
}