例如:請(qǐng)將10000000.01轉(zhuǎn)成10布疙,000,000.01
1. 正則轉(zhuǎn)換【正整數(shù)】
只能用于正整數(shù)辆床,不能有小數(shù)位
str.replace(/\d{1,3}(?=(\d{3})+$)/g,function(s){
return s+','
})
輸入為:let str = "1000000"
[輸入為string]
輸出結(jié)果為:"1,000,000"
解析:
- 利用零寬度正預(yù)測先行斷言(?=exp)(它斷言自身出現(xiàn)的位置的后面能匹配表達(dá)式exp)佳晶。
-
/\d{1,3}(?=(\d{3})+$)/g
這段話的意思是,
符號(hào)前必然會(huì)出現(xiàn)1-3個(gè)數(shù)字,然后隔三個(gè)數(shù)字必會(huì)出現(xiàn)下一個(gè),
符號(hào)讼载,最后加上$
結(jié)束符號(hào)轿秧。 -
()
代表分組,也就是replace
的function
中的s
咨堤,將s
替換成s+','
菇篡。
2. num.toLocaleString('en-US')
只能用于數(shù)字
num.toLocaleString('en-US')
輸入為:1000000.01
[輸入為num]
輸出結(jié)果為:1,000,000.01
3. 轉(zhuǎn)成數(shù)組翻轉(zhuǎn)
str.split(".")[0].split("").reverse().join("").replace(/(\d{3})+?/g,function(s){
return s+","
}).split("").reverse().join("")+'.'+str.split('.')[1]
適配了小數(shù)點(diǎn)
輸入為:1000000.0001
輸出結(jié)果為:1,000,000.0001