关于javascript:如何在html网页的textfield中添加逗号

how to add comma in textfield in html web page

本问题已经有最佳答案,请猛点这里访问。

我有一个网页,其中我将数据输入到,如1000,所以我希望它看起来像1000但它不会改变它只显示的ID值,因为我在其他计算中使用相同的ID 如果1000然后它将显示NaN ...我怎么能避免这个?

1
2
3
4
5
6
7
8
9
10
<input type="text" id="test" onBlur="addCommas()">

    function addCommas(nStr){
        var offset = nStr.length % 3;
        if (offset == 0)
            return nStr.substring(0, offset) + nStr.substring(offset).replace(/([0-9]{3})(?=[0-9]+)/g,"$1,");
        else
            return nStr.substring(0, offset) + nStr.substring(offset).replace(/([0-9]{3})/g,   ",$1");
    }
    alert(addCommas("1234567"));

我从论坛得到了这个代码...有没有人知道如何使这个功能简单,以便它只显示在输入框中,但当我得到ID值显示1000?


用这个测试你的价值:

1
2
3
function isNumber(n) {
    return !isNaN(parseFloat(n)) && isFinite(n);
}

它会阻止你的NAN。

并使用@ Pete的链接知道如何使用逗号作为千位分隔符在JavaScript中打印数字

编辑关于您的评论:
然后,您可以使用并将实际值存储在其中。

所以你的代码看起来像:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<input type="text" id="test" onBlur="addCommas(this)">
<input type="hidden" id="testRealValue">

    function isNumber(n) {
        return !isNaN(parseFloat(n)) && isFinite(n);
    }
    function addCommas(input){
        nStr = input.value;
        if(!isNumber(nStr))return;
        document.getElementById("testRealValue").value = nStr;
        var offset = nStr.length % 3;
        if (offset == 0)
            input.value = nStr.substring(0, offset) + nStr.substring(offset).replace(/([0-9]{3})(?=[0-9]+)/g,"$1,");
        else
            input.value = nStr.substring(0, offset) + nStr.substring(offset).replace(/([0-9]{3})/g,   ",$1");
    }

这是jsfiddle