美文网首页程序员web前端
数字添加逗号分隔符

数字添加逗号分隔符

作者: 北纬40度的思念 | 来源:发表于2017-08-02 22:17 被阅读0次

将一个数字作为参数,返回一个字符串,把整数部分从右到左每三位数添加一个逗号,如:12000000.11 转化为 12,000,000.11。

先看一种简洁的写法 ,这种写法要求对JS正则表达式较为深刻的理解。
废话不说,来看代码:

方法一

function numCommaFormat(number) {
  var arr = number.toString().split(".");
  var newNum  = arr[0].replace(/(?!\b)(?=(\d{3})+$)/g, ",");
  arr[0] = newNum;
  return arr.join(".");
}

(?=x) 正向肯定查找。

例如,/Jack(?=Sprat)/会匹配到'Jack'仅仅当它后面跟着'Sprat'。/Jack(?=Sprat|Frost)/匹配‘Jack’仅仅当它后面跟着'Sprat'或者是‘Frost’。但是‘Sprat’和‘Frost’都不是匹配结果的一部分。

(?!x) 正向否定查找。

例如,/\d+(?!.)/匹配一个数字仅仅当这个数字后面没有跟小数点的时候。正则表达式/\d+(?!.)/.exec("3.141")匹配‘141’但是不是‘3.141’。

方法二

function commafy (num) {
  var prefix = num < 0 ? "-" : "";
  num  = Math.abs(num).toString();
  var arr = num.split(".");
  var prev = arr[0].split("").reverse();
  var newPrev = [];
  
  for(var i = 0; i< prev.length; i++) {
    newPrev.unshift(prev[i]);
    if(i%3 == 2 &&  i < (prev.length -1)) {
      newPrev.unshift(",")
    }
  }
  
  arr[0] = newPrev.join("");
  return prefix + arr.join(".")
}

方法二就比较容易理解,但是相对于第一种就比较繁琐。
看个人喜好,我比较倾向于方法一。

相关文章

  • 数字添加逗号分隔符

    将一个数字作为参数,返回一个字符串,把整数部分从右到左每三位数添加一个逗号,如:12000000.11 转化为 1...

  • JavaScript实现对数字进行千位逗号分隔符添加

    最近刷面试题遇到说要把数字转换成每三位添加一个逗号分隔符的问题,想起以前同事也问过我一个通过正则表达式来添加分隔符...

  • E站训练营第七天:通过分列快速提取有效信息

    一、基本用法 (一)分隔符号:选中区域-数据-分列-分隔符号-TAB/分号/逗号/空值/其他(符号、数字、文字分隔...

  • Java之逗号操作符

    在说逗号操作符的时候我们要注意,逗号操作符不是逗号分隔符,逗号用作分隔符时用来分隔函数的不同参数。 Java里唯一...

  • 类中添加方法

    1.类里面所有函数不需要写function2.多个函数方法之间不需要添加逗号分隔符

  • 大数字使用千分位(逗号)分隔的六种方法

    原文:请使用千位分隔符(逗号)表示web网页中的大数字[https://www.zhangxinxu.com/wo...

  • js数值分隔符

    数值分隔符 欧美语言中,较长的数值允许每三位添加一个分隔符(通常是一个逗号),增加数值的可读性。比如,1000可以...

  • 实现千位分隔符

    参考 请使用千位分隔符(逗号)表示web网页中的大数字 « 张鑫旭-鑫空间-鑫生活[https://www.zha...

  • 写一个js函数,添加千位分隔符

    思路:添加千位分隔符是从后到前,每3位添加逗号,所以这里输入数据转换成字符串后,利用slice方法的输入负数参数从...

  • python读写csv文件(csv)

    [CSV (Comma Separated Values)]即逗号分隔值(也称字符分隔值,因为分隔符可以不是逗号)...

网友评论

    本文标题:数字添加逗号分隔符

    本文链接:https://www.haomeiwen.com/subject/cguylxtx.html