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

Fed*_*ico 4 javascript locale

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

在此输入图像描述

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

数据集:

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

(25000).toLocaleString('es')
"25.000"
Run Code Online (Sandbox Code Playgroud)

为什么会出现这种情况呢?

小智 5

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

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

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

(1000).toLocaleString("de")

“1.000”