亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript數(shù)值千分位格式化的兩種簡(jiǎn)單實(shí)現(xiàn)方法

 更新時(shí)間:2016年08月01日 10:05:49   投稿:jingxian  
下面小編就為大家?guī)硪黄狫avaScript數(shù)值千分位格式化的兩種簡(jiǎn)單實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

在對(duì)數(shù)值進(jìn)行格式化的時(shí)候,一個(gè)常見的問題是按照千分位格式化,網(wǎng)上對(duì)這個(gè)問題已經(jīng)有很多種解決方法了,還可以利用Array.prototype.reduce方法來實(shí)現(xiàn)千分位格式化。

function formatNumber(num) { 
  if (isNaN(num)) { 
    throw new TypeError("num is not a number"); 
  } 
 
  var groups = (/([\-\+]?)(\d*)(\.\d+)?/g).exec("" + num), 
    mask = groups[1],            //符號(hào)位 
    integers = (groups[2] || "").split(""), //整數(shù)部分 
    decimal = groups[3] || "",       //小數(shù)部分 
    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來實(shí)現(xiàn)一個(gè)reduce方法。

在JavaScript中,字符串的replace方法的匹配模式參數(shù)除了字符串以外還可以是一個(gè)正則表達(dá)式,下面是利用String.prototype.replace方法來實(shí)現(xiàn)千分位格式化的具體代碼:

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})是一個(gè)捕獲分組,可以用$1來反向引用,?=(\d{3})+(?:$|\.)是正向斷言,表示匹配1到3個(gè)數(shù)字后面必須跟3個(gè)數(shù)字,但不含最后的3個(gè)數(shù)字或者3個(gè)數(shù)字和小數(shù)點(diǎn)。

以上這篇JavaScript數(shù)值千分位格式化的兩種簡(jiǎn)單實(shí)現(xiàn)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論