You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Angular/JavaScript中获取ISO 4217货币代码?

解决Angular/JavaScript中获取ISO 4217货币代码的问题

当然可以!不管是在Angular项目里还是纯JavaScript环境中,都有现成的方案拿到你需要的ISO 4217货币代码(比如EUR、USD),下面分场景给你拆解:

一、Angular项目中的最优方案

你提到的getLocaleCurrencyName()是用来获取货币全称的,Angular其实在@angular/common包中还提供了专门的getLocaleCurrencyCode()函数,就是用来获取对应locale的ISO 4217货币代码的。

使用步骤:

  1. 首先确保你已经导入了所需的函数和locale数据(如果使用非默认locale的话):
import { getLocaleCurrencyCode, registerLocaleData } from '@angular/common';
// 比如导入英文(美国)的locale数据,其他locale需对应导入
import localeEnUs from '@angular/common/locales/en-US';

// 注册locale数据
registerLocaleData(localeEnUs);
  1. 在组件或服务中直接调用函数即可:
// 获取美国英语环境下的货币代码
const usdCode = getLocaleCurrencyCode('en-US');
console.log(usdCode); // 输出: "USD"

// 获取法语(法国)环境下的货币代码
const eurCode = getLocaleCurrencyCode('fr-FR');
console.log(eurCode); // 输出: "EUR"

这个方法完全贴合Angular的国际化体系,是官方推荐的方案,稳定性和兼容性都有保障。

二、纯JavaScript环境下的方案

如果是脱离Angular的场景,或者你想使用原生API,可以借助浏览器的Intl API(ES6+标准,现代浏览器普遍支持)来获取货币代码:

// 针对指定locale,获取其默认货币的ISO代码
function getCurrencyCode(locale) {
  const formatter = new Intl.NumberFormat(locale, { style: 'currency' });
  return formatter.resolvedOptions().currency;
}

// 测试示例
console.log(getCurrencyCode('en-US')); // "USD"
console.log(getCurrencyCode('de-DE')); // "EUR"
console.log(getCurrencyCode('zh-CN')); // "CNY"

兼容性说明:

Intl.NumberFormat在Chrome 24+、Firefox 29+、Edge 12+、Safari 10+都支持,基本覆盖了现代主流浏览器。如果需要兼容非常老旧的浏览器,可以引入@formatjs/intl-numberformat这类polyfill。

内容的提问来源于stack exchange,提问作者Elias Garcia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:56:49