Javascript之數值千分位符號(Comma)的顯示
講白一點就是當我的Javascript裡面有一個數值型態的資料(字串也可以啦,總之就是可轉換成數值的類型),而我們想要把這個數值以字串的型態顯示在前端HTML的時候,每千位數有一個逗號在上面。
解法一:使用正規表示式
大概沒有甚麼是正規表示式辦不到的事情吧,以下就是正規表示式的寫法。
var money = "123456.789";
console.log(
money.replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ",")
);
//輸出:123,456.789
解法二:使用原生方法toLocaleString
這種寫法有神人很正經去分析過,答案是挺消耗效能的,但就語意上來說可閱讀性變得很高,想要怎麼使用就端看你自己的想法了。
var money = "123456.789";
console.log(
Number(
parseFloat(money).toFixed(3)
).toLocaleString("en", {
minimumFractionDigits: 3
})
);
//輸出:123,456.789
拿掉千分位數的Comma逗號
基本上不建議直接拿掉逗號,因為每個國家對於逗號、句號之於數值上的意義的解釋都不一樣,如果你這個專案是i18n等級,那麼直接拿掉逗號可能會導致數值轉換災難。如果真的不顧慮這些硬要拿掉逗號的話,可以考慮下面這行:
money.replace(/,/g, "");