js實現千位符分隔


前幾天面試做保險項目的公司,被問到了一道實現千位符分割方法的題,乍一看挺簡單,但做起來最后卻沒給出來一個合適的解決方法。回來自己琢磨了一個還行的答案。

var num = 3899000001,
      arr = [];
num = String(num);
for(var i=mum.length-1,j=1;i>=0;i--,j++){
      arr.push(num[i]);
      if(j%3==0 && i != 0){
             arr.push(',')
      }  
}
return arr.reverse().join('');
//3,899,000,001

隨后看到有人用正則表達式來實現,也記下來

function format (num) {
    var reg=/\d{1,3}(?=(\d{3})+$)/g; 
    return (num + '').replace(reg, '$&,');
}
format(123456789)
// "123,456,789"

然而並不是很懂,正則學的不是很好啊哈哈

 

解釋

 

正則表達式 \d{1,3}(?=(\d{3})+$)  表示前面有1~3個數字,后面的至少由一組3個數字結尾。

?=表示正向引用,可以作為匹配的條件,但匹配到的內容不獲取,並且作為下一次查詢的開始。

 $& 表示與正則表達式相匹配的內容,具體的使用可以查看字符串replace()方法

(num+ ' ')表示將數字轉換為字符串

--------------------- 本文來自 智學無憂-老曹 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/lxcao/article/details/52728246?utm_source=copy 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM