跳至主要内容

Intl

什麼是 Intl?

Intl 是 JavaScript 的內建物件,用於處理國際化(Internationalization,i18n)相關的功能。它提供了一系列的 API,用於處理日期、時間、數字、貨幣、語言、排序等國際化相關的操作。

Intl 物件包含了以下幾個內建的子物件:

  • Intl.Collator:用於排序和比較字串。
  • Intl.DateTimeFormat:用於格式化日期和時間。
  • Intl.NumberFormat:用於格式化數字。
  • Intl.PluralRules:用於處理複數形式。
  • Intl.RelativeTimeFormat:用於格式化相對時間。

這些 API 提供了一個標準的方式來處理不同語言和文化的數據,使得開發者可以更容易實現國際化功能。

Intl.NumberFormat

Intl.NumberFormatIntl 物件的一部分,用來格式化數字。它提供了一個標準化的方法,能將數字依照不同國家或地區的習慣格式化。 他提供了兩個參數:

  1. 地區代碼(Locale):用來指定格式化的國家或語言。地區代碼是由語言代碼和地區代碼組成的字串,例如 en-US(美國英文)、zh-TW(台灣中文)。
  2. 選項(Options):用來指定格式化的方式,以下是一些常用的選項:
    • style:指定格式化的風格,可以是 decimal(十進制)、currency(貨幣)、percent(百分比)。
    • currency:指定貨幣代碼,例如 USD(美元)、EUR(歐元)。
    • minimumIntegerDigits:指定整數部分的最小位數。
    • minimumFractionDigits:指定小數部分的最小位數。
    • maximumFractionDigits:指定小數部分的最大位數。
    • useGrouping:指定是否使用分組分隔符號(千位分隔符號)。

在這個例子中,我們建立了一個 Intl.NumberFormat 的實例,指定地區為美國(en-US),格式為貨幣(style: 'currency'),並選擇貨幣單位為美元(currency: 'USD')。然後,我們利用 format 方法將數字格式化為美元格式。

const number = 123456.789;

const formatter = new Intl.NumberFormat("en-US", {
style: "currency",
currency: "USD",
});

console.log(formatter.format(number));
// Output: $123,456.79

參考資料