如何在JavaScript中在字符串的某个索引处添加字符

3

我有一个需求,需要将以逗号分隔的大数字在最后三个字符之前加上逗号,例如426,753,890,我想要像这样42,67,53,890

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


1
你想在每两个数字之间加逗号,但最后三位除外?这是一个非常奇怪的格式。 - Barmar
2
@Barmar 这是在印度系统中使用的。真的不那么奇怪 :-) - Vasan
你添加逗号的方式也有点冗长。你可以使用 number.toLocaleString("en") 来简单地实现。查看此答案以获取更多信息:https://stackoverflow.com/a/50839440/631803 - Vikasdeep Singh
3个回答

2
您可以使用JavaScript API number.toLocaleString("en-IN") 来实现。 number.toLocaleString()非常有用。
请查看以下示例:

let number = 426753890;

console.log(number.toLocaleString("en")); // General English format

console.log(number.toLocaleString("en-IN")); // Indian English format

请参考此处了解更多相关信息。


1
纠正@VicJordan的回答,如果您使用en-IN语言环境,则应该能够正确获取格式化字符串:

let number = 12345678;
console.log(number.toLocaleString("en-IN"));


1

这里有一个棘手的例子要做...

function numberWithCommas(x) {
    var parts = x.toString().split(".");
    parts[0] = parts[0].substring(0, parts[0].length-1).replace(/\B(?=(\d{2})+(?!\d))/g, ",") + parts[0].substring(parts[0].length-1);
    return parts.join(".");
  }
  
  console.log(numberWithCommas(426753890));


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接