Intl.NumberFormat.prototype.formatRange()

Baseline 2023
新推出

自 2023 年 8 月起,此功能已在最新的裝置和瀏覽器版本中可用。此功能可能不適用於舊裝置或瀏覽器。

formatRange() 方法屬於 Intl.NumberFormat 例項,它根據此 Intl.NumberFormat 物件的區域設定和格式化選項來格式化數字範圍。

語法

js
formatRange(startRange, endRange)

引數

startRange

要格式化的 NumberBigInt 或字串。字串的解析方式與 數字轉換 中的方式相同,但 formatRange() 將使用字串表示的精確值,避免在隱式轉換為數字時丟失精度。

endRange

要格式化的 NumberBigInt 或字串。

返回值

一個字串,表示根據此 Intl.NumberFormat 物件的區域設定和格式化選項格式化後的給定數字範圍。如果起始值和結束值的格式化結果相同,則輸出僅包含單個值,前面可能帶有“約等於”符號(例如,“~$3”)。該符號的插入僅取決於區域設定,即使 startRange === endRange 也會插入。

異常

RangeError

如果 startRangeendRangeNaN 或無法轉換的字串,則丟擲此錯誤。

TypeError

如果 startRangeendRange 為 undefined,則丟擲此錯誤。

描述

formatRange getter 函式根據呼叫它的 Intl.NumberFormat 物件的區域設定和格式化選項,將數字範圍格式化為字串。

示例

使用 formatRange

使用 formatRange getter 函式來格式化貨幣值範圍

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

console.log(nf.formatRange(3, 5)); // "$3 – $5"

// Note: the "approximately equals" symbol is added if
// startRange and endRange round to the same values.
console.log(nf.formatRange(2.9, 3.1)); // "~$3"
js
const nf = new Intl.NumberFormat("es-ES", {
  style: "currency",
  currency: "EUR",
  maximumFractionDigits: 0,
});

console.log(nf.formatRange(3, 5)); // "3-5 €"
console.log(nf.formatRange(2.9, 3.1)); // "~3 €"

規範

規範
ECMAScript® 2026 國際化 API 規範
# sec-intl.numberformat.prototype.formatrange

瀏覽器相容性

另見