我正在尝试使用Intl.NumberFormat编写货币格式化函数。 当我通过美元或欧元作为货币时,它可以正常工作,但是当我传递更加模糊的货币代码(如PLN或COL)时,它似乎会中断,而不是按要求显示符号,而是显示代码。它清楚地识别代码,因为当我要求它显示名称时,它可以正常工作:
Intl.NumberFormat("en-US",{
style:'currency',
minimumIntegerDigits:1,
currency: 'PLN',
currencyDisplay: 'symbol'
}).format(43);
时显示“PLN43”
Intl.NumberFormat("en-US",{
style:'currency',
minimumIntegerDigits:1,
currency: 'PLN',
currencyDisplay: 'name'
}).format(43);
显示“43.00波兰兹罗提”
答案 0 :(得分:0)
根据spec:
但是,本地化货币符号可用的货币代码和语言标签的组合集取决于实现。如果没有本地化的货币符号,则使用ISO 4217货币代码进行格式化。
答案 1 :(得分:0)
Intl.NumberFormat应该具有所需的符号,只需要确保指定正确的语言代码即可。
您可以在此处找到ISO语言代码的映射: https://www.w3schools.com/tags/ref_language_codes.asp
在这种情况下,您将需要使用波兰语值“ pl”而不是“ en-US”
Intl.NumberFormat("pl",{
style:'currency',
minimumIntegerDigits:1,
currency: 'PLN',
currencyDisplay: 'symbol'
}).format(43);