千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码


Posted in Javascript onDecember 05, 2013

最近做项目需要我们前端对金额进行千分位格式化(也就是说每三位用逗号隔开),代码已经做了修改  之前的版本是本人疏忽 真对不住大家了!现在已经做了修改 如果还有不完善的地方 请大家多多指教!

1. 支持用逗号隔开 0-9位 逗号隔开

JS代码如下:

/**
         * JS格式化
         * @param number 要格式化的数字
         * @param d [0-9]位 逗号隔开
         */         function numFormat(number,d) {
             var numArrs = ['0','1','2','3','4','5','6','7','8','9'],
                 REG_NUMBER = /^\d+(.\d+)?$/;
             d = d || 3; // 不传 是3位 千分位

             if(isNumber(number) || isString(number) || REG_NUMBER.test(number)) {
                 // 先转换成字符串
                 var toString = number + '',
                     isPoint = toString.indexOf('.'),
                     prefix,   // 前缀
                     suffix,   // 后缀
                     t = '';
                 if(isPoint > 0) {
                    prefix = toString.substring(0,isPoint);
                    suffix = toString.substring(isPoint + 1);
                 }else if(isPoint == 0) {
                    prefix = '';
                    suffix = toString.substring(1);
                 }else {
                    prefix = toString;
                    suffix = '';
                 }
                 if(prefix != '') {
                    prefixArr = prefix.split('').reverse();
                    var isArrayIndex = isArray(d,numArrs);
                    if(isArrayIndex > -1) {
                        for(var i = 0, ilen = prefixArr.length; i < ilen; i+=1) {
                            t += prefixArr[i] + ((i + 1) % isArrayIndex == 0 && (i + 1) != prefixArr.length ? "," : "");
                        }
                        t = t.split("").reverse().join("");
                        if(suffix != '') {
                            return t + "." + suffix;
                        }else {
                            return t;
                        }
                    }else {
                        return '传入的多少位不正确';
                    }
                 }else if(prefix != '' && suffix == ''){
                    return prefix;
                 }else if(prefix == '' && suffix != ''){
                    prefix = 0;
                    return prefix + suffix;
                 }else {
                     return "有错误";
                 }
            }else {
                return '传入的要格式化的数字不符合';
            }
         }
         function isArray(item,arrs) {
            for(var i = 0, ilen = arrs.length; i < ilen; i++) {
                if(item == arrs[i]) {
                    return i;
                }
            }
            return -1;
         }
         function isNumber(number) {
            return Object.prototype.toString.apply(number) === '[object Number]';
         }
         function isString(number) {
            return Object.prototype.toString.apply(number) === ['object String'];
         }

但是貌似还有一个不完善的地方 就是 我这样调用 console.log(numFormat("1111.00"));  在控制台上 直接输出 1,111 而不是1,111.00 也就是说 如果小数点后面的是 0的话 游览器自动会抹掉后面的0 其他的都正常!本人测试了下 基本符合要求 如有不完善的地方 请大家多多指教!

Javascript 相关文章推荐
用JavaScript调用WebService的示例
Apr 07 Javascript
javascript作用域容易记错的两个地方分析
Jun 22 Javascript
怎么判断js脚本加载完成
Feb 28 Javascript
javascript实现阻止iOS APP中的链接打开Safari浏览器
Jun 12 Javascript
用C/C++来实现 Node.js 的模块(一)
Sep 24 Javascript
javascript等号运算符使用详解
Apr 16 Javascript
ExtJs动态生成treepanel的Json格式
Jul 19 Javascript
浅析JavaScript中的对象类型Object
May 26 Javascript
Axios学习笔记之使用方法教程
Jul 21 Javascript
Vue项目中添加锁屏功能实现思路
Jun 29 Javascript
Node.js之readline模块的使用详解
Mar 25 Javascript
Angular性能优化之第三方组件和懒加载技术
May 10 Javascript
jquery导航制件jquery鼠标经过变色效果示例
Dec 05 #Javascript
javascript拖拽上传类库DropzoneJS使用方法
Dec 05 #Javascript
jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
Dec 05 #Javascript
JS获取html对象的几种方式介绍
Dec 05 #Javascript
JS获取URL中的参数数据
Dec 05 #Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
Dec 05 #Javascript
浅谈JavaScript函数参数的可修改性问题
Dec 05 #Javascript
You might like
php 从数据库提取二进制图片的处理代码
2009/09/09 PHP
PHP 截取字符串专题集合
2010/08/19 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
PHP获取文件夹大小函数用法实例
2015/07/01 PHP
很酷的javascript loading效果代码
2008/06/18 Javascript
js实现权限树的更新权限时的全选全消功能
2009/02/17 Javascript
JQuery Ajax通过Handler访问外部XML数据的代码
2010/06/01 Javascript
在多个页面使用同一个HTML片段的代码
2011/03/04 Javascript
js的表单操作 简单计算器
2011/12/29 Javascript
使用iframe window的scroll方法控制iframe页面滚动
2014/03/05 Javascript
jQuery文件上传插件Uploadify使用指南
2014/06/05 Javascript
json实现前后台的相互传值详解
2015/01/05 Javascript
jQuery中andSelf()方法用法实例
2015/01/08 Javascript
使用JavaScript+canvas实现图片裁剪
2015/01/30 Javascript
JavaScript使用cookie记录临时访客信息的方法
2015/04/07 Javascript
JQuery实现动态添加删除评论的方法
2015/05/18 Javascript
JS+CSS实现仿msn风格选项卡效果代码
2015/10/22 Javascript
javascript中活灵活现的Array对象详解
2016/11/30 Javascript
js实现图片轮播效果学习笔记
2017/07/26 Javascript
浅谈express 中间件机制及实现原理
2017/08/31 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
2019/01/07 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
原生JS实现相邻月份日历
2020/10/13 Javascript
写一个Vue loading 插件
2020/11/09 Javascript
Python3.x中自定义比较函数
2015/04/24 Python
Python设计模式之备忘录模式原理与用法详解
2019/01/15 Python
Django在pycharm下修改默认启动端口的方法
2019/07/26 Python
运动会通讯稿150字
2014/02/15 职场文书
经销商订货会主持词
2014/03/27 职场文书
企业授权委托书范本
2014/04/02 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
教务处干事工作总结
2015/08/14 职场文书
忠诚教育学习心得体会
2016/01/23 职场文书
导游词之河姆渡遗址博物馆
2019/10/10 职场文书
MYSQL事务的隔离级别与MVCC
2022/05/25 MySQL