欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

2、利用正則的子項來替換,跟第1種方法類似。

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

3、先將字符串轉(zhuǎn)成數(shù)組,利用reverse反轉(zhuǎn)數(shù)組后每3個數(shù)字后添加一個分隔符“,”,到字符串末尾除外,之后轉(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個數(shù)字加一個分隔符,首尾不加

// 利用循環(huán)拼接字符串每隔3個加一個分隔符
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(""));

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

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

希望本文所述對大家JavaScript程序設計有所幫助。

相關文章

  • javascript設置頁面背景色及背景圖片的方法

    javascript設置頁面背景色及背景圖片的方法

    這篇文章主要介紹了javascript設置頁面背景色及背景圖片的方法,涉及JavaScript動態(tài)操作頁面元素屬性的相關技巧,需要的朋友可以參考下
    2015-12-12
  • 微信小程序使用radio顯示單選項功能【附源碼下載】

    微信小程序使用radio顯示單選項功能【附源碼下載】

    這篇文章主要介紹了微信小程序使用radio顯示單選項功能,涉及針對radio組件事件響應相關操作技巧,并附帶源碼供讀者下載參考,需要的朋友可以參考下
    2017-12-12
  • JSONObject與JSONArray使用方法解析

    JSONObject與JSONArray使用方法解析

    這篇文章主要介紹了JSONObject與JSONArray使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • WebGL?多重紋理的使用介紹

    WebGL?多重紋理的使用介紹

    這篇文章主要為大家介紹了WebGL 多重紋理的使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • JS實現(xiàn)彈出下載對話框及常見文件類型的下載

    JS實現(xiàn)彈出下載對話框及常見文件類型的下載

    JS要實現(xiàn)下載功能,一般都是這么幾個過程:生成下載的URL,動態(tài)創(chuàng)建一個A標簽,并將其href指向生成的URL,然后觸發(fā)A標簽的單擊事件,這樣就會彈出下載對話框,從而實現(xiàn)了一個下載的功能
    2017-07-07
  • js實現(xiàn)無縫滾動特效

    js實現(xiàn)無縫滾動特效

    這篇文章主要介紹了js實現(xiàn)無縫滾動特效,結合已學知識進行擴展性練習,感興趣的朋友可以參考一下
    2015-12-12
  • JS表的模擬方法

    JS表的模擬方法

    這篇文章主要介紹了JS表的模擬方法,涉及javascript模擬表的生成、添加與刪除節(jié)點的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • 原生JS實現(xiàn)圓環(huán)拖拽效果

    原生JS實現(xiàn)圓環(huán)拖拽效果

    這篇文章主要為大家詳細介紹了原生JS寫一個環(huán)形的鼠標滑動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • VSCode中如何利用d.ts文件進行js智能提示

    VSCode中如何利用d.ts文件進行js智能提示

    這篇文章主要給大家介紹了關于VSCode中如何利用d.ts文件進行js智能提示的相關資料,文中通過圖文以及示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2018-04-04
  • 小程序?qū)崿F(xiàn)多列選擇器

    小程序?qū)崿F(xiàn)多列選擇器

    這篇文章主要為大家詳細介紹了小程序?qū)崿F(xiàn)多列選擇器的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02

最新評論