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

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 其他的都正常!本人测试了下 基本符合要求 如有不完善的地方 请大家多多指教!

JS数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的更多相关文章

  1. 好用的JS数字格式化

    /* *js格式化数字代码 * *value: 要格式化的数字值 *scale: 最多保留几位小数 *zeroed: 是否保留尾0 *percented: 是否转称百分比形式 * */ functio ...

  2. js数字格式化-四舍五入精简版

    搜索网上的,数字格式化过余复杂,自己想了个简单方法,欢迎吐槽. 简化说明: '123333' => 12.3万 parseInt('123333') 字符串转整型 parseInt('12333 ...

  3. js数字格式化(截断格式化或四舍五入格式化)

    /*** * 数字格式化(适合金融产品截断小数位后展示) * @param num * @param pattern (标准格式:#,###.## 或#.## 或#,###00.00) * @para ...

  4. js数字格式化(加千分位逗号)

    需求:当金额大于10000时,在作展示的时候,需要加千分位逗号,就是每隔1000要用逗号分隔: 方法一:使用toLocaleString()方法 此方法和toString()方法的区别看这里 < ...

  5. js 数字格式化,只能输入正负整数,小数

    1.只能输入正整数 <input name="columnValue" class="input96 required" type="text& ...

  6. js数字格式化千分位格式

    带小数点的 var a = 8462948.2453; console.log(a.toLocaleString()) //8,462,948.245 不带小数点的 num.toString().re ...

  7. Android 上的代码阅读器 CoderBrowserHD 修改支持 go 语言代码

    我在Android上的代码阅读器用的是 https://github.com/zerob13/CoderBrowserHD 改造的版本,改造后的版本我放在 https://github.com/ghj ...

  8. PAT1080 MOOC期终成绩 (25分) ——同样参考了柳婼大神的代码及思路,在自己的代码上做了修改,还是很复杂

    1080 MOOC期终成绩 (25分)   对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分 ...

  9. Python 数字系列-数字格式化输出

    数字的格式化输出 问题 你需要将数字格式化后输出,并控制数字的位数.对齐.千位分隔符和其他的细节. 解决方案 格式化输出单个数字的时候,可以使用内置的 format() 函数,比如: >> ...

随机推荐

  1. 数据定义语句(DDL语句)

    建立表 create table 表名( 字段名1 类型, 字段名2 类型, ........ 字段名n 类型): 类型有: char(n)       是一个类型,叫定长字符串,数据不够就补空格 v ...

  2. APP中内嵌H5页面为什么不能下载?

    在APP中内嵌H5页面,若页面上存在下载链接,没有任何反应,为什么呢? 原因是app中内嵌的H5页面是WebView解析的,什么是WebView呢? 在Android手机中内置了一款高性能webkit ...

  3. 原生css 中变量的使用

    前两天看到阮大神的一篇在css中使用变量的文章,整理了一下. 这个重要的 CSS 新功能,所有主要浏览器已经都支持了.本文全面介绍如何使用它,你会发现原生 CSS 从此变得异常强大. 一.变量的声明 ...

  4. TensorFlow Saver 保存最佳模型 tf.train.Saver Save Best Model

      TensorFlow Saver 保存最佳模型 tf.train.Saver Save Best Model Checkmate is designed to be a simple drop-i ...

  5. 排错-windows平台下访问oracle em出现空白的解决方法

    排错-windows平台下访问oracle em出现空白的解决方法 by:授客 QQ:1033553122 问题描述 IE浏览器本地访问oem,出现空白页面,就左上角有一行字符 http://loca ...

  6. show命令

    数据库 show databases; 表 show tables; show tables in xxdb; show tables 'a*'; tblproperties show tblprop ...

  7. 【three.js练习程序】创建简单物理场景

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  8. ASP.NET Core 依赖注入最佳实践——提示与技巧

    在这篇文章,我将分享一些在ASP.NET Core程序中使用依赖注入的个人经验和建议.这些原则背后的动机如下: 高效地设计服务和它们的依赖. 预防多线程问题. 预防内存泄漏. 预防潜在的BUG. 这篇 ...

  9. mysqldump: Error 2013

    最近在mysqldump时,遭遇mysqldump: Error 2013错误.以为是常见的参数设置有问题,调整之后,也没有任何成效.原来发生了OOM,以下是其具体描述. 一.故障现象 环境 # mo ...

  10. MySQL压缩包zip安装

    看了网上好多种教程,自己尝试失败了好多次,最后总算弄好了,具体如下 zip下载地址:https://dev.mysql.com/downloads/mysql/ 之后点击No thanks, just ...