每三位数(千位分隔符)添加逗号的功能也是从小数中删除句点

时间:2013-12-16 09:34:18

标签: jquery

我有一个非常大的表单,使用来自数据库的信息构建。

对于所有归类为“数字”的字段,在键上调用一个函数以自动添加千位分隔符。效果很好

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这种现象证明我没有弥补;)

1 个答案:

答案 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;
}