欢迎访问宙启技术站
智能推送

js千分位实现方法大汇总

发布时间:2023-05-18 12:19:38

JavaScript中实现千分位分隔符,即将数值以千位数为分隔符分开,可以使用以下几种方法。

方法一:使用toLocaleString()

JavaScript内置方法toLocaleString()可以将数字根据本地化参数格式化为字符串。其中可以使用的参数包括小数点分隔符、千位数分隔符、数字的最大或最小位数等。在实现千分位数字分隔符时,只需要通过toLocaleString()方法设置千位数分隔符为逗号即可。

let num = 1234567.89;
console.log(num.toLocaleString()); // "1,234,567.89"

方法二:使用正则表达式

我们可以使用正则表达式将数字分隔开,该正则表达式的作用是匹配3个数字的一组,并在之间添加一个逗号。

function formatNum(num) {
  let reg = /\d{1,3}(?=(\d{3})+$)/g;
  return num.toString().replace(reg, '$&,');
}

console.log(formatNum(1234567.89)); // "1,234,567.89" 

方法三:使用split()方法

这种方法是先将数字转换成字符串,然后通过split()方法将整数部分按照3位一组分隔成数组。再将数组用join()方法拼接起来。如果有小数部分先将小数部分和整数部分分别处理,最后再拼接起来即可。

function formatNum(num) {
  let parts = num.toString().split('.');
  parts[0] = parts[0].replace(/\d{1,3}(?=(\d{3})+$)/g, '$&,');
  return parts.join('.');
}

console.log(formatNum(1234567.89)); // "1,234,567.89" 

方法四:使用slice()方法

该方法是将数字转换成字符串,再从右侧开始截取三位一组的数字,截取完毕后再反转字符串输出即可。

function formatNum(num) {
  let str = num.toString();
  let result = [], len = str.length, i = len - 1;
  let count = 0; // 计数器
  while (i >= 0) {
    let char = str.charAt(i);
    if (/\d/.test(char)) {
      count++;
    }
    if (count === 3) {
      result.unshift(',');
      count = 0;
    }
    result.unshift(char);
    i--;
  }
  return result.join('');
}

console.log(formatNum(1234567.89)); // "1,234,567.89" 

以上是实现千分位分隔符的几种方法,根据需求可以选择不同的方法来实现。实际项目中可以结合具体情况来选择最适合自己的方法。