0

我想根据货币价值在第三或第二位的货币价值中添加逗号:输出应该是这样的:

1000 => 1000
10000 => 10,000
210000 => 2,10,000
2010000 => 20,10,000
12010000 => 1,20,10,000

我正在使用 Numeral.js 插件进行转换。但插件仅在 3 位后添加逗号。输出如下:

200,000,000 用于输入 200000000

这是我正在使用的代码。

<script type="text/javascript">
        $(window).load(function() {
            $('.currency').keyup(function(event){
             if(event.which >= 37 && event.which <= 40){
                event.preventDefault();
             }
             var $this = $(this);
             var num = $this.val();
             var num2 = numeral(num).format('0,0[.]00');
             console.log(num2);
             $this.val(num2);
            });
        });
</script>

我不介意正则表达式,但我找不到任何可以做到这一点的东西。

4

4 回答 4

0
function numberWithCommas(x) 
{
    var parts = x.toString().split(".");
    parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    return parts.join(".");
}

试试这个...

于 2013-11-01T12:28:34.247 回答
0

while循环中使用字符串操作

var intPart = '12010000',
    i = intPart.length - 3,
    str = intPart.slice(-3);
if (i > 0) {
    while ((i-=2)>=0) {
        str = intPart.slice(i, i+2) + ',' + str;
    }
    if (i === -1) str = intPart.slice(0, 1) + ',' + str;
}
str; // "1,20,10,000"
于 2013-11-01T12:42:09.627 回答
0

尝试使用上面的代码进行此更改

function numberWithCommas(x) 
{
    var parts = x.toString().split(".");
    parts[0] = parts[0].replace(/^(\d*)(\d\d)(\d\d\d$|\d\d\.)/g, "$1$2,$3");
    return parts.join(".");
}
于 2013-11-01T12:51:41.580 回答
0

这是一种解决方案,

最多可以工作 9 位jsfiddle 示例

function numberWithCommas(x) {
    var res = [], nr;
    x = x.split("").reverse().join("");
    nr = x.match(/[0-9]{1,3}/g);
    console.log("first split" , nr);
    if (x.length < 4) {return nr[0].split("").reverse().join('');}
    else if (x.length < 9) {
        res.push( nr.shift() );//last three digits
        //join and split the remainder at 2 digits

        nr = nr.join('').match(/[0-9]{1,2}/g);

        res = res.concat(nr);
        console.log(res);
        return res.join(',').split("").reverse().join("");
    } else {
        return nr.join(',').split("").reverse().join('');
    }
}
function handleInput(evt) {
    $('#result').text( numberWithCommas( $('#input').val() ));
}
$('#input').keyup(handleInput);
于 2013-11-01T13:41:27.457 回答