在千位数后添加逗号,而不是十进制数

时间:2020-07-24 11:11:06

标签: javascript jquery

我要在千位数中添加一个逗号,但是这些数字具有十进制值,因此十进制值也添加了我不希望的逗号

例如:默认数字2476.570550272,我要添加逗号2,476.570550272

使用下面的代码后,我也将逗号转换为十进制数,例如2,476.570,550,272。

$.fn.digits = function () {
    return this.each(function () {
        $(this).text($(this).text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"));
    })
}

$(".number").digits();

3 个答案:

答案 0 :(得分:2)

JavaScript为此提供了一个功能,称为NumberFormat

const number = 123456.789123123123;
const yourFormat = new Intl.NumberFormat('en-EN',{ maximumFractionDigits: 5 });

console.log(yourFormat.format(number));

该功能用途广泛,here you can find more options。我建议阅读一下它也可以将来使用。它有很多选择,对于货币也非常推荐。

答案 1 :(得分:1)

尝试一下。

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

答案 2 :(得分:0)

这是您的正则表达式的香草味改编,可以按您指定的方式工作。

digits(document.querySelectorAll(".numInput"));

function digits(inputs){
  for(let input of inputs){
    const [int, dec] = input.value.split(".");
    input.value = int.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") + (dec ? "."+dec : "");
  }
}
<input class="numInput" value="4321.09876" />
<input class="numInput" value="987654321" />
<input class="numInput" value=".123456789" />