Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)


Posted in Javascript onJune 22, 2016

在项目里碰到需要把类似'450000'的数字转换为会计记账所用的格式,'450,000.00',分隔千分位和小数点后不够两位数时自动补齐,已下记录几种实现的方式

ps:如果不考虑后面的小数点,最快捷的方法:

"12345678".replace(/[0-9]+?(?=(?:([0-9]{3}))+$)/g,function(a){return a+','}); //输出 12 345 678

1.用循环的方式实现

function formatNum(str){
 var newStr = "";
 var count = 0;

 if(str.indexOf(".")==-1){
  for(var i=str.length-1;i>=0;i--){
   if(count % 3 == 0 && count != 0){
    newStr = str.charAt(i) + "," + newStr;
   }else{
    newStr = str.charAt(i) + newStr;
   }
   count++;
  }
  str = newStr + ".00"; //自动补小数点后两位
  console.log(str)
 }
 else
 {
  for(var i = str.indexOf(".")-1;i>=0;i--){
   if(count % 3 == 0 && count != 0){
    newStr = str.charAt(i) + "," + newStr; //碰到3的倍数则加上“,”号
   }else{
    newStr = str.charAt(i) + newStr; //逐个字符相接起来
   }
   count++;
  }
  str = newStr + (str + "00").substr((str + "00").indexOf("."),3);
  console.log(str)
 }
}

formatNum('13213.24'); //输出13,213.34
formatNum('132134.2'); //输出132,134.20
formatNum('132134'); //输出132,134.00
formatNum('132134.236'); //输出132,134.236

2.使用正则(比较不足的是还是得自己去判断小数点后面的位数,有更智能的正则请通知我~)

function regexNum(str){
 var regex = /(\d)(?=(\d\d\d)+(?!\d))/g;

 if(str.indexOf(".") == -1){

  str= str.replace(regex,',') + '.00';
  console.log(str)

 }else{
  var newStr = str.split('.');
  var str_2 = newStr[0].replace(regex,',');

  if(newStr[1].length <= 1){ 
   //小数点后只有一位时
   str_2 = str_2 + '.' + newStr[1] +'0';
   console.log(str_2)

  }else if(newStr[1].length > 1){ 
   //小数点后两位以上时
   var decimals = newStr[1].substr(0,2);
   var srt_3 = str_2 + '.' + decimals;
   console.log(srt_3)
  }
 }
};
regexNum('23424224'); //输出2,42,224.00 
regexNum('23424224.2'); //输出2,42,224.20
regexNum('23424224.22'); //输出2,42,224.22
regexNum('23424224.233'); //输出2,42,224.23

以上就是本文的全部内容,了解更多JavaScript的语法,大家可以查看:《JavaScript 参考教程》、《JavaScript代码风格指南》,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
打造基于jQuery的高性能TreeView(asp.net)
Feb 23 Javascript
基于jquery实现控制经纬度显示地图与卫星
May 20 Javascript
Node.js实现批量去除BOM文件头
Dec 20 Javascript
Node.js 去掉种子(torrent)文件里的邪恶信息
Mar 27 Javascript
利用js实现禁止复制文本信息
Jun 03 Javascript
jQuery动画效果图片轮播特效
Jan 12 Javascript
jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
Mar 05 Javascript
canvas实现手机端用来上传用户头像的代码
Oct 20 Javascript
详解数组Array.sort()排序的方法
May 09 Javascript
vue将对象新增的属性添加到检测序列的方法
Feb 24 Javascript
Nuxt的动态路由和参数校验操作
Nov 09 Javascript
JavaScript 对象创建的3种方法
Nov 17 Javascript
Javascript将数字转化成为货币格式字符串
Jun 22 #Javascript
jQuery soColorPacker 网页拾色器
Jun 22 #Javascript
DIV+CSS+jQ实现省市联动可扩展
Jun 22 #Javascript
Javascript对象字面量的理解
Jun 22 #Javascript
Javascript闭包与函数柯里化浅析
Jun 22 #Javascript
JS中innerHTML和pasteHTML的区别实例分析
Jun 22 #Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
Jun 22 #Javascript
You might like
一个改进的UBB类
2006/10/09 PHP
深入PHP数据缓存的使用说明
2013/05/10 PHP
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
php建立Ftp连接的方法
2015/03/07 PHP
PHP中生成UUID自定义函数分享
2015/06/10 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
IE8 下的Js错误HTML Parsing Error...
2009/08/14 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
jQuery中bind()方法用法实例
2015/01/19 Javascript
在Javascript中处理数组之toSource()方法的使用
2015/06/09 Javascript
基于jQuery实现搜索关键字自动匹配功能
2020/03/26 Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
2015/12/12 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
2016/09/04 Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
2016/09/27 Javascript
详解nodeJS之路径PATH模块
2017/05/31 NodeJs
JavaScript实现随机数生成器(去重)
2017/10/13 Javascript
JavaScript中EventLoop介绍
2018/01/22 Javascript
JavaScript中this关键字用法实例分析
2018/08/24 Javascript
jQuery轻量级表单模型验证插件
2018/10/15 jQuery
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
jquery+ajax实现异步上传文件显示进度条
2020/08/17 jQuery
[01:18]DOTA2超级联赛专访hanci ForLove淘汰感言曝光
2013/06/04 DOTA
python实现外卖信息管理系统
2018/01/11 Python
pycharm 配置远程解释器的方法
2018/10/28 Python
python实现自动解数独小程序
2019/01/21 Python
在cmd中查看python的安装路径方法
2019/07/03 Python
利用Python的folium包绘制城市道路图的实现示例
2020/08/24 Python
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
高中毕业生登记表自我鉴定范文
2014/03/18 职场文书
中学生旷课检讨书模板
2014/10/08 职场文书
大学生见习总结报告
2015/06/24 职场文书
工作违纪的检讨书范文
2019/07/09 职场文书