前端數字格式化指南 正則表達式 (古早的做法) Date API Intl.NumberFormat (推薦使用)

數字格式化操作在前端領域是十分常見的需求。但是瀏覽器和原生JS並沒有提供太多可用的API來讓我們進行操作。

因此,我們大多數時候都訴諸於自己造輪子。

下面介紹在平常工作中,針對數字進行格式化的幾個方法:

正則表達式 (古早的做法)

const number = 1234567;
number.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,');
// 結果爲:1,234,567

Date API

const number = 123456.789;
number.toLocaleString();// 結果爲:123,456.789

Intl.NumberFormat (推薦使用)

好在現在JS提供了一個更加可用和規範化的API——Intl.NumberFormat。對於常用的貨幣格式化都有良好的支持。

new Intl.NumberFormat().format(123456.789);
// 顯示結果爲:123,456.789

另外,也可以指定不同國家的貨幣單位:

new Intl.NumberFormat('ja-JP', { style: 'currency', currency: 'JPY' }).format(12345.678);
// 結果顯示爲:"¥12,346"

而且該API現在的兼容性也十分良好:

基本上主流的瀏覽器現在都已經開始支持。

現在如果你的項目有需要用到數據格式化操作的地方,就不用手動去實現該功能了。嘗試讓瀏覽器幫你去實現。

具體API的細節,可以參考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章