如何在文本输入字段中添加逗号以分隔每组三位数?

hel*_*ter 10 html javascript css input number-formatting

我有一个表单的文本输入字段,用户可以输入一个数字.我想在每三位数后自动插入一个逗号.

例如,输入"20"将导致"20".输入'100'将导致'100'.但是如果它们输入'1000',则在1和后面的0之间插入逗号(例如,1,000).显然,如果数字达到7位数(例如,1,000,000),这种行为将继续.

是否有捷径可寻?我对这一切都有点新意,所以请回答你和孩子说话:)

who*_*off 7

以下javascript:

function format(input)
{
    var nStr = input.value + '';
    nStr = nStr.replace( /\,/g, "");
    var x = nStr.split( '.' );
    var x1 = x[0];
    var x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while ( rgx.test(x1) ) {
        x1 = x1.replace( rgx, '$1' + ',' + '$2' );
    }
    input.value = x1 + x2;
}
Run Code Online (Sandbox Code Playgroud)

和以下HTML:

<input type="text" onkeyup="format(this)">
Run Code Online (Sandbox Code Playgroud)

应该解决你的问题.关键是使用'onkeyup'.

在这里试试http://jsfiddle.net/YUSph/


Kev*_*sox 1

function addCommas(nStr){
        nStr += '';
        x = nStr.split('.');
        x1 = x[0];
        x2 = x.length > 1 ? '.' + x[1] : '';
        var rgx = /(\d+)(\d{3})/;
        while (rgx.test(x1)) {
            x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
        return x1 + x2;
}
Run Code Online (Sandbox Code Playgroud)

将输入的值传递给函数并使用返回的结果设置输入。您可以将其绑定到 onchange 事件。

这是一个依赖 jquery 绑定更改事件并设置值的工作示例:http://jsfiddle.net/TYyfn/

逗号脚本来自:http://www.mredkj.com/javascript/nfbasic.html