Intl.supportedValuesOf()
**Intl.supportedValuesOf()
** 静态方法返回一个数组,其中包含实现支持的日历、排序规则、货币、数字系统或单位值。
重复项会被省略,数组按升序字典顺序排序(更准确地说,使用 Array.prototype.sort()
且比较函数为 undefined
)。
此方法可用于测试特定实现中是否支持某些值,并且仅在必要时下载 polyfill。它还可以用于构建允许用户选择其首选本地化值的 UI,例如当 UI 从 WebGL 或服务器端创建时。
尝试一下
语法
js
Intl.supportedValuesOf(key)
参数
key
-
一个字符串键,指示要返回的值的类别。可以是以下之一:
"calendar"
、"collation"
、"currency"
、"numberingSystem"
、"timeZone"
、"unit"
。
返回值
一个已排序的唯一字符串值数组,指示实现针对给定键支持的值。
**注意:**虽然 IANA 数据库会不时更新,但 Unicode CLDR 数据库(浏览器使用)出于稳定性目的会保留旧时区名称。某些浏览器可能会使用旧名称,而其他浏览器则会将其覆盖为新名称。有关更多信息,请参阅 Intl.Locale.prototype.getTimeZones
。
异常
RangeError
-
如果作为参数传递了不受支持的键,则会抛出此异常。
示例
功能测试
您可以通过与 undefined
进行比较来检查该方法是否受支持
js
if (typeof Intl.supportedValuesOf !== "undefined") {
// method is supported
}
获取键的所有值
要获取日历支持的值,您可以使用键 "calendar"
调用该方法。然后,您可以像下面所示迭代返回的数组
js
Intl.supportedValuesOf("calendar").forEach((calendar) => {
// "buddhist", "chinese", "coptic", "dangi", etc.
});
**注意:**日历值返回的数组将始终包含值“gregory”(公历)。
其他值也以相同方式获取
js
Intl.supportedValuesOf("collation").forEach((collation) => {
// "compat", "dict", "emoji", etc.
});
Intl.supportedValuesOf("currency").forEach((currency) => {
// "ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", etc.
});
Intl.supportedValuesOf("numberingSystem").forEach((numberingSystem) => {
// "adlm", "ahom", "arab", "arabext", "bali", etc.
});
Intl.supportedValuesOf("timeZone").forEach((timeZone) => {
// "Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", etc.
});
Intl.supportedValuesOf("unit").forEach((unit) => {
// "acre", "bit", "byte", "celsius", "centimeter", etc.
});
无效键会抛出 RangeError
js
try {
Intl.supportedValuesOf("someInvalidKey");
} catch (err) {
//Error: RangeError: invalid key: "someInvalidKey"
}
规范
规范 |
---|
ECMAScript 国际化 API 规范 # sec-intl.supportedvaluesof |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。