📌  相关文章
📜  javascript 千位分隔符 - Javascript (1)

📅  最后修改于: 2023-12-03 15:31:41.557000             🧑  作者: Mango

JavaScript 千位分隔符

简介

千位分隔符指的是在数字四位一组地以逗号分隔数字,从而使得数字更易读懂。

解决方案

JavaScript 提供了多种方式实现千位分隔符,以下是其中的几种方法:

1. 使用 toLocaleString()
const num = 123456789;
const formattedNum = num.toLocaleString('en-US');
console.log(formattedNum); // 123,456,789

这种方法根据当前环境的语言选项,自动使用合适的千位分隔符。

2. 使用正则表达式
const num = 123456789;
const formattedNum = num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
console.log(formattedNum); // 123,456,789

这种方法使用正则表达式匹配数字的末尾三位加上逗号,直到没有更多的三位数字。

3. 使用递归函数
function format(num) {
  if (num < 1000) {
    return num.toString();
  }
  const remainder = num % 1000;
  const quotient = Math.floor(num / 1000);
  const formattedRemainder = remainder < 10 ? '00'+remainder : remainder < 100 ? '0'+remainder : remainder;
  return format(quotient) + ',' + formattedRemainder;
}
const num = 123456789;
const formattedNum = format(num);
console.log(formattedNum); // 123,456,789

这种方法递归地将数字从右到左每三位加一个逗号,直到数字小于 1000。

注意事项

千位分隔符只对数字类型有效。如果需要对其他类型的数据添加千位分隔符,需要先将其转化为数字类型。例如:

const str = '123456789';
const num = parseFloat(str);
const formattedNum = num.toLocaleString('en-US');
console.log(formattedNum); // 123,456,789

以上三种方法均可以实现千位分隔符的效果,具体选择哪种方法取决于实际需求和个人喜好。