【问题标题】:Chrome - toLocaleString() - Thousands separator is not working for SpanishChrome - toLocaleString() - 千位分隔符不适用于西班牙语
【发布时间】:2020-08-25 13:28:21
【问题描述】:

在 Chrome 中,当区域设置为“es”时,千位分隔符不存在。

如果我使用 4 位数字,没有问题

数据集:

(2500).toLocaleString('en')
"2,500"
(2500).toLocaleString('pt')
"2.500"
(2500).toLocaleString('es')
"2500"

(25000).toLocaleString('es')
"25.000"

为什么会这样?

【问题讨论】:

    标签: javascript locale


    【解决方案1】:

    根据 CLDR,这是预期的行为。 “最小分组位数”是 2,这意味着只有当一个数字在其他 3 位之前有 2 位时,才会出现千位分隔符。 显然,这仅适用于 chrome,因为其他浏览器使用的是“旧”规范。

    查看https://st.unicode.org/cldr-apps/v#/es/Symbols/70ef5e0c9d323e01

    我针对特定情况使用的一种可能的解决方法是将其设置为德语区域设置(“de”)而不是西班牙语:

    (1000).toLocaleString("de")

    “1.000”

    【讨论】:

    • 伟大的黑客!很有用!
    猜你喜欢
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多