Chrome - toLocaleString() - 千位分隔符不适用于西班牙语

Chrome - toLocaleString() - Thousands separator is not working for Spanish

在 Chrome 中,当在 'es' 中设置语言环境时,没有千位分隔符。

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

数据集:

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

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

为什么会这样?

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

勾选这个https://st.unicode.org/cldr-apps/v#/es/Symbols/70ef5e0c9d323e01

我在特定情况下使用的一种可能的解决方法是将其设置为德语语言环境(“de”)而不是西班牙语:

(1000).toLocaleString("de")

“1.000”