国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

javascript實現將數字轉成千分位的方法小結【5種方式】

2019-11-19 18:34:34
字體:
來源:轉載
供稿:網友

本文實例講述了javascript實現將數字轉成千分位的方法。分享給大家供大家參考,具體如下:

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

1、利用正則的零寬度正預測先行斷言(?=exp),名字有點難記,意思是它斷言自身出現的位置的后面能匹配表達式exp,對此概念還不明白的可以戳這里,這里不做過多解釋。數字千分位的特點是,第一個逗號后面數字的個數是3的倍數,正則:/(/d{3})+$/;第一個逗號前最多可以有1至3個數字,正則://d{1,3}/。加起來就是//d{1,3}(/d{3})+$/,分隔符要從前往后加,就要將前面的數字“87”替換成“87,”,為什么是87不是874?因為874后面只剩下5位數字,在632后加一個分隔符后,將只剩下97,不符合千分位要求,所以第一個分隔符后面的數字位數必須是3的倍數。要匹配數字87,又要保證87后面數字位數是3的倍數,并且要將匹配的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、先將字符串轉成數組,利用reverse反轉數組后每3個數字后添加一個分隔符“,”,到字符串末尾除外,之后轉回字符串。

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

4、利用while循環拼接字符串每隔3個數字加一個分隔符,首尾不加

// 利用循環拼接字符串每隔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循環在數組里push分隔符,首尾不加

// 利用while循環在數組里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相關內容感興趣的讀者可查看本站專題:《JavaScript數學運算用法總結》、《JavaScript中json操作技巧總結》、《JavaScript切換特效與技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》及《JavaScript遍歷算法與技巧總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西华县| 石嘴山市| 曲周县| 长垣县| 多伦县| 扶沟县| 海丰县| 西林县| 济宁市| 保德县| 潼关县| 海淀区| 广水市| 秭归县| 新宁县| 郸城县| 玉屏| 巧家县| 江永县| 都兰县| 青铜峡市| 分宜县| 保靖县| 芦山县| 通河县| 德昌县| 荃湾区| 黄骅市| 乡宁县| 墨竹工卡县| 包头市| 岗巴县| 沙河市| 黔江区| 巧家县| 桃园市| 缙云县| 湘阴县| 湘阴县| 商河县| 邵武市|