全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

JS数字千分位格式化实现方法总结

本文实例讲述了JS数字千分位格式化实现方法。分享给大家供大家参考,具体如下:

用js实现如下功能,将给定的数字转化成千分位的格式,如把“10000”转化成“10,000”,并考虑到性能方面的因素。

一.首先想到的办法,将数字转换为字符串(toString())再打散成数组(split),如果直接数字转换为数组,就是一整个放进去了,不能单独取到每一位。然后通过循环,逐个倒着把数组中的元素插入到新数组的开头(unshift),第三次或三的倍数次,插入逗号,最后把新数组拼接成一个字符串

n=1233456;
toQfw(n);
function toQfw(){
  var arr_n=n.toString().split("");
  var result=[];
  var cs=0;
  for(var i=arr_n.length-1;i>=0;i--){
    cs++;
    result.unshift(arr_n[i]);
    if(!(cs%3)&&i!=0){ //i!=0即取到第1位的时候,前面不用加逗号
        result.unshift(",");
    }
    alert(result.join(""))
  }
};

缺点,一位一位的加进去,性能差,且还要先转换成字符串再转换成数组

二.于是想到能不能从头到尾都用字符串完成,不通过数组,即用charAt()获取子字符串,主要用到字符串拼接

n=1233456;
toQfw(n);
function toQfw(){
  var str_n=n.toString();
  var result="";
  var cs=0;
  for(var i=str_n.length-1;i>=0;i--){
    cs++;
    result=str_n.charAt(i)+result;
    if(!(cs%3)&&i!=0){
        result=","+result;
    }
    alert(result)
  }
};

缺点:依然是一位一位加进去

三.可不可以不用循环用纯字符串方法来实现,这样就不会一位一位加进去了。每次取末三位子字符串放到一个新的空字符串里并拼接上之前的末三位,原本数组不断截掉后三位直到长度小于三个,最后把剥完的原数组拼接上新的不断被填充的数组

n=1233456;
toQfw(n);
function toQfw(){
  var str_n=n.toString();
  var result="";
  while(str_n.length>3){
    result=","+str_n.slice(-3)+result;
    str_n=str_n.slice(0,str_n.length-3)
  }
  if(str_n){
    alert(str_n+result)
  }
};

性能最佳

四.用正则表达式,去最后三位数字,和字符串匹配,匹配成功就把后三位存起来,前面加逗号,然后将原字符串的值更新为匹配成功剩下的左边,直到正则与字符串匹配成功后三位的值和原字符串更新值相等时,说明取完了

n=1233456;
toQfw(n);
function toQfw(){
  var str_n=n.toString();
  var result="";
  var re=/\d{3}$/;
  while(re.test(str_n)){
    result=RegExp.lastMatch+result;
    if(str_n!=RegExp.lastMatch){
      result=","+result;
      str_n=RegExp.leftContext; //匹配成功,返回匹配内容左侧的字符信息
    }
    else{
      num="";
    }
  }
  if(str_n){
    alert(str_n+result);
  }
}

五.简化版正则,用前向声明和非前向声明,从后往前匹配3位数字,前向声明的地方替换成逗号,但是如果刚好3的倍数位,会第一位前面也加,所以前面要再来个非前向声明

var str="123598752";
var re=/(?=(?!(\b))(\d{3})+$)/g;
str=str.replace(re,",");
alert(str);

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。


# JS  # 数字  # 千分位  # 格式化  # JS实现的数字格式化功能示例  # JS实现的4种数字千位符格式化方法分享  # javascript 数字格式化输出的实现代码  # 5个javascript的数字格式化函数分享  # js对数字的格式化使用说明  # JavaScript格式化数字的函数代码  # JS格式化数字(每三位加逗号)的方法总结  # 千分  # 前向  # 去了  # 转换成  # 转换为  # 转化成  # 相关内容  # 遍历  # 感兴趣  # 数据结构  # 就把  # 给大家  # 考虑到  # 要先  # 来个  # 都用  # 每一位  # 从头到尾  # 更多关于  # 来实现 


相关文章: 建站之星后台密码遗忘如何找回?  怀化网站制作公司,怀化新生儿上户网上办理流程?  高防服务器租用如何选择配置与防御等级?  黑客如何利用漏洞与弱口令入侵网站服务器?  建站主机选哪种环境更利于SEO优化?  如何获取免费开源的自助建站系统源码?  如何做网站制作流程,*游戏网站怎么搭建?  网站制作新手教程,新手建设一个网站需要注意些什么?  建站之星价格显示格式升级,你的预算足够吗?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  海南网站制作公司有哪些,海口网是哪家的?  建站之星各版本价格是多少?  家具网站制作软件,家具厂怎么跑业务?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  长沙做网站要多少钱,长沙国安网络怎么样?  如何通过建站之星自助学习解决操作问题?  安云自助建站系统如何快速提升SEO排名?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  招商网站制作流程,网站招商广告语?  如何在IIS中新建站点并解决端口绑定冲突?  如何配置WinSCP新建站点的密钥验证步骤?  三星网站视频制作教程下载,三星w23网页如何全屏?  官网网站制作腾讯审核要多久,联想路由器newifi官网  如何在阿里云服务器自主搭建网站?  建站之家VIP精选网站模板与SEO优化教程整合指南  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  C#怎么使用委托和事件 C# delegate与event编程方法  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  建站之星官网登录失败?如何快速解决?  定制建站如何定义?其核心优势是什么?  *服务器网站为何频现安全漏洞?  建站主机类型有哪些?如何正确选型  如何零成本快速生成个人自助网站?  定制建站流程解析:需求评估与SEO优化功能开发指南  如何快速搭建高效可靠的建站解决方案?  ,柠檬视频怎样兑换vip?  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  Thinkphp 中 distinct 的用法解析  中山网站推广排名,中山信息港登录入口?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  如何通过网站建站时间优化SEO与用户体验?  如何在阿里云高效完成企业建站全流程?  如何挑选高效建站主机与优质域名?  再谈Python中的字符串与字符编码(推荐)  浅谈Javascript中的Label语句  如何在阿里云虚拟主机上快速搭建个人网站?  金*站制作公司有哪些,金华教育集团官网?  建站主机无法访问?如何排查域名与服务器问题 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。