【问题标题】:currencyDisplay must be either "code", "symbol", or "name" - Safari issuecurrencyDisplay 必须是“代码”、“符号”或“名称” - Safari 问题
【发布时间】:2020-09-30 19:36:19
【问题描述】:

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

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

【问题讨论】:

    标签: javascript reactjs safari currency intl


    【解决方案1】:

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

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

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

    【讨论】:

    • 如果您发现 MDN 上未列出的不兼容问题,您可以随时向下滚动页面并单击页脚附近的“在 GitHub 上报告此内容的问题”。这就是我刚刚所做的:github.com/mdn/content/issues/2042
    • @pmrotule 太好了!谢谢你这样做。下次我一定会这样做。
    猜你喜欢
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多