欢迎来到代码驿站!

JavaScript代码

当前位置:首页 > 网页前端 > JavaScript代码

js千分位实现方法大汇总

时间:2023-02-16 09:34:13|栏目:JavaScript代码|点击:

千分位实现汇总

1.最最便捷的实现方式:toLocaleString()

注:只针对数字格式有效!

let num = 1234567890;
num.toLocaleString(); //"1,234,567,890"

2.正则匹配

// 正则匹配方法一
let num = 1234567890;
let reg = /\d{1,3}(?=(\d{3})+$)/g;   
String(num).replace(reg, '$&,'); //"1,234,567,890"
// 正则匹配方法二
let num = 1234567890;
let reg = /\B(?=(\d{3})+$)/g;   
String(num).replace(reg, ','); //"1,234,567,890"
说明:如果想知道具体怎样的分组方式,可在 [https://regexper.com/](https://regexper.com/) 上测试
1. ?= 表示正向引用
2. $& 表示与正则表达式相匹配的内容,可查看replace()
3. \B 非单词边界

3.for循环

// for循环方法一
function format(num){  
  num = String(num);//数字转字符串  
  let str = '';//字符串累加  
  for (let i = num.length- 1, j = 1; i >= 0; i--, j++){  
      if (j%3 == 0 && i != 0){ //每隔三位加逗号,过滤正好在第一个数字的情况  
          str += num[i] + ','; //加千分位逗号  
          continue;  
      }  
      str += num[i]; //倒着累加数字
  }  
  return str.split('').reverse().join(""); //字符串=>数组=>反转=>字符串  
} 
let num = 1234567890;
format(num); //"1,234,567,890"
// for循环方法二
function format(num){  
  num = String(num);//数字转字符串
  let str = '';//字符串累加
  for (let i = num.length- 1, j = 1; i >= 0; i--, j++){  
      if (j%3 == 0 && i != 0){ //每隔三位加逗号,过滤正好在第一个数字的情况
          str = ',' + num[i] + str; //加千分位逗号
         continue; 
      }  
      str = num[i] + str; //累加数字
  }  
  return str;
}
let num = 1234567890; 
format(num); //"1,234,567,890"

4.slice+while循环

function format(num) {
  let arr = [],
      str = String(num),
      count = str.length;
  while (count >= 3) {
    arr.unshift(str.slice(count - 3, count));
    count -= 3;
  }
  // 如果是不是3的倍数就另外追加到上去
  if(str.length % 3) arr.unshift(str.slice(0, str.length % 3));
  return arr.toString();
}
let num = 1234567890; 
format(num); //"1,234,567,890"

5.reduce

function format(num) {
  var str = num+'';
  return str.split("").reverse().reduce((prev, next, index) => {
    return ((index % 3) ? next : (next + ',')) + prev;
  })
}
let num = 1234567890; 
format(num); //"1,234,567,890"

当然也存在很多类似的写法,不一一列举了~ 

千分位分隔符

方法一

没有小数位时

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

方法二

有小数位时

formatThousand(money) {  
  let res = money.toString().replace(/\d+/, function(num){ // 先提取整数部分
    return num.replace(/(\d)(?=(\d{3})+$)/g, function($1){
      return $1+",";
    });
  })
  return res;
},

上一篇:js confirm()方法的使用方法实例

栏    目:JavaScript代码

下一篇:JavaScript判断两种格式的输入日期的正确性的代码

本文标题:js千分位实现方法大汇总

本文地址:http://www.codeinn.net/misctech/225877.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有