在JavaScript中添加逗号作为千位分隔符 - 输出被删除

8 浏览
0 Comments

在JavaScript中添加逗号作为千位分隔符 - 输出被删除

我正在尝试动态调整输入的数值以包括千位分隔符。

以下是我的代码:

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

然而,当我输入四位数后的数字时,字段会被清空。

我在哪里出错了?如果有jQuery解决方案,我已经在我的网站上使用了。

0
0 Comments

问题的原因是代码中的变量名混淆。在函数中,变量名`input`被错误地赋值给了变量`output`,导致输出被删除。解决方法是将赋值操作改为`output = new String(input)`。

以下是整理后的文章:

在JavaScript中,如果要为数字添加千位分隔符,可以使用字符串的分割、反转和替换操作来实现。下面是一个示例代码:

function addThousandsSeparator(input) {
    var output = input;
    if (parseFloat(input)) {
        output = new String(input); // 将input转换为字符串
        var parts = output.split("."); // 移除小数部分
        parts[0] = parts[0].split("").reverse().join("").replace(/(\d{3})(?!$)/g, "$1,").split("").reverse().join("");
        output = parts.join(".");
    }
    return output;
}
addThousandsSeparator("1234567890"); // 返回 1,234,567,890
addThousandsSeparator("12345678.90"); // 返回 12,345,678.90

然而,上述代码中存在一个问题。在函数中,变量名`input`被错误地赋值给了变量`output`,导致输出被删除。为了解决这个问题,我们需要将赋值操作修改为`output = new String(input)`。

通过以上修改,代码将能够正确地为数字添加千位分隔符。

0
0 Comments

问题原因:在输入框中输入数字时,希望以千位分隔符形式显示,但是在添加千位分隔符的过程中,出现了删除输出的问题。

解决方法:使用以下代码替代原有代码,通过在输入框中输入文本来实现添加千位分隔符的功能。


这段代码通过调用`addCommas`函数来实现千位分隔符的添加,因为函数是处理文本而不是数字。

经过尝试,这段代码可以工作,但是在最后三个数字之后仍然添加了逗号,但是这个问题可以通过进一步修改来解决。

其他用户询问了问题的解决方法,其中包括修复逗号添加在每个数字之后的额外逗号的问题。

0
0 Comments

在这个问题中,问题的原因是正则表达式的问题,导致输出的结果被删除了。解决方法是修改正则表达式。

解决方法如下:

function numberWithCommas(x) {
  return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}

0