语言环境 JS 的货币代码

Currency Code to locale JS

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

IE:

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

这行得通 - 唯一的问题是,它位于一个函数中,我在其中传递值和货币..

function(value, currency)

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

您不需要两个列表。只要有一个地图(对象),使用货币作为键,使用语言环境作为值。

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'));

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

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

语言环境: http://www.science.co.il/Language/Locale-codes.asp