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

javascript實(shí)現(xiàn)將數(shù)字轉(zhuǎn)成千分位的方法小結(jié)【5種方式】

 更新時(shí)間:2016年12月11日 12:07:40   作者:wangmeijian  
這篇文章主要介紹了javascript實(shí)現(xiàn)將數(shù)字轉(zhuǎn)成千分位的方法,結(jié)合實(shí)例形式分析了5種常用的數(shù)字轉(zhuǎn)換的常用方法,涉及字符串與正則操作的相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例講述了javascript實(shí)現(xiàn)將數(shù)字轉(zhuǎn)成千分位的方法。分享給大家供大家參考,具體如下:

盡管離過(guò)年還有兩個(gè)月之久,春運(yùn)搶票的戰(zhàn)斗已經(jīng)打響了,悲劇的是我還沒(méi)搶到票,看到某瀏覽器上的數(shù)字時(shí),想到一個(gè)經(jīng)典面試題,沒(méi)錯(cuò),就是數(shù)字轉(zhuǎn)千分位。如將數(shù)字87463297轉(zhuǎn)成87,463,297,方法有很多種,我這里只想到5種。

1、利用正則的零寬度正預(yù)測(cè)先行斷言(?=exp),名字有點(diǎn)難記,意思是它斷言自身出現(xiàn)的位置的后面能匹配表達(dá)式exp,對(duì)此概念還不明白的可以戳這里,這里不做過(guò)多解釋。數(shù)字千分位的特點(diǎn)是,第一個(gè)逗號(hào)后面數(shù)字的個(gè)數(shù)是3的倍數(shù),正則:/(\d{3})+$/;第一個(gè)逗號(hào)前最多可以有1至3個(gè)數(shù)字,正則:/\d{1,3}/。加起來(lái)就是/\d{1,3}(\d{3})+$/,分隔符要從前往后加,就要將前面的數(shù)字“87”替換成“87,”,為什么是87不是874?因?yàn)?74后面只剩下5位數(shù)字,在632后加一個(gè)分隔符后,將只剩下97,不符合千分位要求,所以第一個(gè)分隔符后面的數(shù)字位數(shù)必須是3的倍數(shù)。要匹配數(shù)字87,又要保證87后面數(shù)字位數(shù)是3的倍數(shù),并且要將匹配的87替換成“87,”,就要用到(?=exp),這里先定義一個(gè)變量var str = "87463297";

// 零寬斷言
console.info( str.replace(/\d{1,3}(?=(\d{3})+$)/g,function(s){
  return s+','
}) )

2、利用正則的子項(xiàng)來(lái)替換,跟第1種方法類(lèi)似。

// 子項(xiàng)
console.info( str.replace(/(\d{1,3})(?=(\d{3})+$)/g,function($1){
  return $1=$1+','
}) )

3、先將字符串轉(zhuǎn)成數(shù)組,利用reverse反轉(zhuǎn)數(shù)組后每3個(gè)數(shù)字后添加一個(gè)分隔符“,”,到字符串末尾除外,之后轉(zhuǎn)回字符串。

// 利用字符串和數(shù)組方法
console.info( str.split("").reverse().join("").replace(/(\d{3})+?/g,function(s){
  return s+",";
}).replace(/,$/,"").split("").reverse().join("") )

4、利用while循環(huán)拼接字符串每隔3個(gè)數(shù)字加一個(gè)分隔符,首尾不加

// 利用循環(huán)拼接字符串每隔3個(gè)加一個(gè)分隔符
var result="",
  index = 0,
  len = str.length-1;
while(len>=0) {
  index%3===0&&index!==0 ? result+=","+str[len] : result+=str[len];
  len--;
  index++;
};
result=result.split("").reverse().join("");
console.info(result);

5、利用while循環(huán)在數(shù)組里push分隔符,首尾不加

// 利用while循環(huán)在數(shù)組里push分隔符
var result="",
  index = 0,
  len = str.length,
  i = len-1,
  arr = str.split("");
while(len-index>0){
  len>=index&&len-index!==len && arr.splice(len-index,0,",");
  index+=3;
  i-=4;
};
console.log(arr.join(""));

結(jié)語(yǔ):第1種方法是最簡(jiǎn)潔的,性能也是最好的,推薦使用。順便附上所有例子的demo源碼下載,如果還有其它更好更方便的方法請(qǐng)告訴我,謝謝!

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript中json操作技巧總結(jié)》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動(dòng)畫(huà)特效與技巧匯總》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript遍歷算法與技巧總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 移動(dòng)端效果之IndexList詳解

    移動(dòng)端效果之IndexList詳解

    這篇文章主要為大家詳細(xì)介紹了移動(dòng)端效果之IndexList,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • javascript 變速加數(shù)功能實(shí)現(xiàn)代碼

    javascript 變速加數(shù)功能實(shí)現(xiàn)代碼

    試想一下你要在你的網(wǎng)站提供如下這樣的功能:提供一個(gè)文本框用于收集用戶(hù)數(shù)據(jù),這個(gè)文本框只能接受整型的數(shù)值,不提供給用戶(hù)手工輸入,只提供兩個(gè)按鈕。
    2009-10-10
  • 詳解JSON.stringify()的5個(gè)秘密特性

    詳解JSON.stringify()的5個(gè)秘密特性

    這篇文章主要介紹了詳解JSON.stringify()的5個(gè)秘密特性,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 基于Express框架使用POST傳遞Form數(shù)據(jù)

    基于Express框架使用POST傳遞Form數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了基于Express框架使用POST傳遞Form數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • js改變embed標(biāo)簽src值的方法

    js改變embed標(biāo)簽src值的方法

    這篇文章主要介紹了js改變embed標(biāo)簽src值的方法,涉及javascript操作元素屬性的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • js 全世界最短的IE瀏覽器判斷代碼

    js 全世界最短的IE瀏覽器判斷代碼

    以前最短的IE判定借助于IE不支持垂直制表符的特性搞出來(lái)的。
    2010-05-05
  • Javascript中的幾種URL編碼方法比較

    Javascript中的幾種URL編碼方法比較

    這篇文章主要介紹了Javascript中的幾種URL編碼方法比較,本文對(duì)比了escape()、encodeURI()以及encodeURIComponent()這3種URL編碼方法,需要的朋友可以參考下
    2015-01-01
  • 詳解微信小程序膠囊按鈕返回|首頁(yè)自定義導(dǎo)航欄功能

    詳解微信小程序膠囊按鈕返回|首頁(yè)自定義導(dǎo)航欄功能

    對(duì)于一些電商平臺(tái)來(lái)說(shuō),當(dāng)商品被轉(zhuǎn)發(fā)后會(huì)很影響客戶(hù)查看其它產(chǎn)品和首頁(yè),這時(shí)候就需要使用自定義導(dǎo)航欄自己寫(xiě)一個(gè)“膠囊按鈕”。這篇文章主要介紹了詳見(jiàn)微信小程序膠囊按鈕返回|首頁(yè)自定義導(dǎo)航欄,需要的朋友可以參考下
    2019-06-06
  • Google (Local) Search API的簡(jiǎn)單使用介紹

    Google (Local) Search API的簡(jiǎn)單使用介紹

    這篇文章主要介紹了Google (Local) Search API的簡(jiǎn)單使用。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2013-11-11
  • Firefox中使用outerHTML的2種解決方法

    Firefox中使用outerHTML的2種解決方法

    這篇文章主要介紹了Firefox中使用outerHTML的2種解決方法,需要的朋友可以參考下
    2014-06-06

最新評(píng)論

龙陵县| 石泉县| 崇州市| 灯塔市| 滕州市| 错那县| 秀山| 年辖:市辖区| 张家港市| 万盛区| 南充市| 邵东县| 剑阁县| 太原市| 乌拉特后旗| 桦川县| 库车县| 深圳市| 宜黄县| 嘉善县| 原平市| 保山市| 寿光市| 泗洪县| 东乡族自治县| 宿迁市| 芦山县| 姜堰市| 札达县| 张家港市| 和政县| 德清县| 南充市| 额尔古纳市| 宜君县| 江山市| 恩平市| 乐东| 桐城市| 光山县| 中西区|