最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

在對數(shù)值進行格式化的時候,一個常見的問題是按照千分位格式化,網(wǎng)上對這個問題已經(jīng)有很多種解決方法了,還可以利用Array.prototype.reduce方法來實現(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],            //符號位 
    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來實現(xiàn)一個reduce方法。

在JavaScript中,字符串的replace方法的匹配模式參數(shù)除了字符串以外還可以是一個正則表達式,下面是利用String.prototype.replace方法來實現(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})是一個捕獲分組,可以用$1來反向引用,?=(\d{3})+(?:$|\.)是正向斷言,表示匹配1到3個數(shù)字后面必須跟3個數(shù)字,但不含最后的3個數(shù)字或者3個數(shù)字和小數(shù)點。

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

相關文章

最新評論

兴宁市| 和田市| 栾川县| 庆安县| 九江县| 农安县| 文登市| 贡嘎县| 城口县| 峨边| 镶黄旗| 天峻县| 怀来县| 永德县| 蓝山县| 咸丰县| 九龙县| 成都市| 上犹县| 孟连| 甘谷县| 那曲县| 汶川县| 蓬溪县| 孝义市| 肥东县| 巴林左旗| 弥勒县| 隆化县| 桃江县| 将乐县| 中江县| 玛沁县| 杭锦后旗| 舞阳县| 冀州市| 辽阳县| 大理市| 抚宁县| 多伦县| 和林格尔县|