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