货币显示必须是“代码”、“符号”或“名称”——Safari 问题

Jam*_*rov 10 javascript safari currency intl reactjs

我正在尝试使用全局Intl构造函数来格式化带有货币的值。但它似乎currencyDisplay:'narrowSymbol'不受支持并且在 Safari 中工作,但在 Chrome 中工作正常。

在控制台中返回以下错误:
RangeError: currencyDisplay must be either "code", "symbol", or "name"

Kin*_*lly 14

看起来这种不兼容性没有在 caniuse 或 MDN 上列出。今天刚看完。我确实看到narrowSymbolECMAScript 2020 国际化 API ( https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-402.pdf ) 支持,但我不确定哪些浏览器已经实现了。

我们的测试人员提到了 Safari 桌面版和移动版以及 iOS 版 Chrome 中的问题。我更新了我的currencyDisplay选项symbol,它看起来与之前的方式几乎相同。我建议现在使用该选项以使其在更多浏览器中运行。

将这种不兼容性添加到 caniuse 和 MDN 中也会很好,这样像我这样的人就不会选择更理想的窄符号样式来节省空间,却发现它在大部分浏览器中都不起作用。