html如何实现千分位显⽰,JavaScript数值千分位格式化的两种
简单实现⽅法
在对数值进⾏格式化的时候,⼀个常见的问题是按照千分位格式化,⽹上对这个问题已经有很多种解决⽅法了,还可以利⽤
duce⽅法来实现千分位格式化。
function formatNumber(num) {
if (isNaN(num)) {
throw new TypeError("num is not a number");
}
var groups = (/([\-\+]?)(\d*)(\.\d+)?/g).exec("" + num),
mask = groups[1], //符号位formatnumber数字格式
integers = (groups[2] || "").split(""), //整数部分
decimal = groups[3] || "", //⼩数部分
remain = integers.length % 3;
var temp = duce(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⽅法的匹配模式参数除了字符串以外还可以是⼀个正则表达式,下⾯是利⽤place ⽅法来实现千分位格式化的具体代码:
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数值千分位格式化的两种简单实现⽅法就是⼩编分享给⼤家的全部内容了,希望能
给⼤家⼀个参考,也希望⼤家多多⽀持脚本之家。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论