js實現千位符分隔
阿新 • • 發佈:2018-09-29
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實現千位符分隔