当前位置: 首页 > 编程笔记 >

JavaScript数值千分位格式化的两种简单实现方法

程赞
2023-03-14
本文向大家介绍JavaScript数值千分位格式化的两种简单实现方法,包括了JavaScript数值千分位格式化的两种简单实现方法的使用技巧和注意事项,需要的朋友参考一下

在对数值进行格式化的时候,一个常见的问题是按照千分位格式化,网上对这个问题已经有很多种解决方法了,还可以利用Array.prototype.reduce方法来实现千分位格式化。

function formatNumber(num) { 
  if (isNaN(num)) { 
    throw new TypeError("num is not a number"); 
  } 
 
  var groups = (/([\-\+]?)(\d*)(\.\d+)?/g).exec("" + num), 
    mask = groups[1],            //符号位 
    integers = (groups[2] || "").split(""), //整数部分 
    decimal = groups[3] || "",       //小数部分 
    remain = integers.length % 3; 
 
  var temp = integers.reduce(function(previousValue, currentValue, index) { 
    if (index + 1 === remain || (index + 1 - remain) % 3 === 0) { 
      return previousValue + currentValue + ","; 
    } else { 
      return previousValue + currentValue; 
    } 
  }, "").replace(/\,$/g, ""); 
  return mask + temp + decimal; 
}

Array的reduce方法在IE9以下不支持,不过,我们可以基于ECMAScript 3来实现一个reduce方法。

在JavaScript中,字符串的replace方法的匹配模式参数除了字符串以外还可以是一个正则表达式,下面是利用String.prototype.replace方法来实现千分位格式化的具体代码:

function formatNumber(num) { 
  if (isNaN(num)) { 
    throw new TypeError("num is not a number"); 
  } 
 
  return ("" + num).replace(/(\d{1,3})(?=(\d{3})+(?:$|\.))/g, "$1,");  
} 

(\d{1,3})是一个捕获分组,可以用$1来反向引用,?=(\d{3})+(?:$|\.)是正向断言,表示匹配1到3个数字后面必须跟3个数字,但不含最后的3个数字或者3个数字和小数点。

以上这篇JavaScript数值千分位格式化的两种简单实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍JS数字千分位格式化实现方法总结,包括了JS数字千分位格式化实现方法总结的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS数字千分位格式化实现方法。分享给大家供大家参考,具体如下: 用js实现如下功能,将给定的数字转化成千分位的格式,如把“10000”转化成“10,000”,并考虑到性能方面的因素。 一.首先想到的办法,将数字转换为字符串(toString())再打散成数组

  • 本文向大家介绍JS实现数字格式千分位相互转换方法,包括了JS实现数字格式千分位相互转换方法的使用技巧和注意事项,需要的朋友参考一下 实例如下: 以上这篇JS实现数字格式千分位相互转换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍node.js中格式化数字增加千位符的几种方法,包括了node.js中格式化数字增加千位符的几种方法的使用技巧和注意事项,需要的朋友参考一下 每三位以逗号分隔的处理方式 正则方式: 循环查找方式 toLocaleString函数:

  • 使用 toLocaleString() 将浮点数转换为 Decimal mark 格式。 将整数部分转化为用逗号分隔的字符串。 const toDecimalMark = num => num.toLocaleString('en-US'); toDecimalMark(12305030388.9087); // "12,305,030,388.909"

  • 本文向大家介绍js添加千分位的实现代码(超简单),包括了js添加千分位的实现代码(超简单)的使用技巧和注意事项,需要的朋友参考一下 JS 添加千分位,测试可以使用 以上这篇js添加千分位的实现代码(超简单)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍js实现千分符和保留几位小数的简单实例,包括了js实现千分符和保留几位小数的简单实例的使用技巧和注意事项,需要的朋友参考一下 js实现千分符转化 使用var amount = fmoney(123456.78,2); console.log(amount); 结果:123,456.78 以上这篇js实现千分符和保留几位小数的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考