区域设置 JS 的货币代码

Currency Code to locale JS

本文关键字:货币 代码 JS 设置 区域      更新时间:2023-09-26

在这里幽默我,但我有一个微不足道的任务,即输入数字并将其格式化为货币代码。

即:

var value = 1000;
value.toLocaleString('en-AU, {
    style: 'currency',
    currency: 'AUD;,
    minimumFractionDigits: 2
});
// A$1,000.00

这有效 - 唯一的问题是,它位于一个函数中,我在其中传递值和货币。

函数(值、货币)

现在我必须维护货币到区域设置映射的列表。有没有一种快速轻量级的方法来将数字格式化为货币。我很高兴发送区域设置而不是货币。无论哪种方式,我都不想维护两个列表。

如果你想要的是在哪里获得等价列表,我没有找到,但你可以构建它与这些列表匹配

货币:http://www.currency-iso.org/dam/downloads/lists/list_one.xml

地区:http://www.science.co.il/Language/Locale-codes.asp

你不需要两个列表。只需有一个地图(对象),使用货币作为键,使用区域设置作为值。

var currencyToLocale = {
  'AUD': 'en-AU'
    // etc...
};
function formatAsCurrency(value, currency) {
  // get the locale from the map...
  var locale = currencyToLocale[currency];
  return value.toLocaleString(locale, {
    style: 'currency',
    currency: currency,
    minimumFractionDigits: 2
  });
};
console.log(formatAsCurrency(1000, 'AUD'));

return new Intl.NumberFormat(locale, { style: 'currency', currency: currencyCode }).format(value)