1. 程式人生 > >js實現千位符分隔

js實現千位符分隔

repl lac 答案 rep 博客 cti 一個 num UNC

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

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

js實現千位符分隔