Intl.supportedValuesOf()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2017.
Die statische Methode Intl.supportedValuesOf()
gibt ein Array zurück, das die unterstützten Kalender-, Kollations-, Währungs- und Nummerierungssystem- oder Einheit-Werte enthält, die von der Implementierung unterstützt werden.
Doppelte Werte werden ausgelassen, und das Array wird in aufsteigender lexikografischer Reihenfolge sortiert (oder genauer gesagt, unter Verwendung von Array.prototype.sort()
mit einer undefined
Vergleichsfunktion).
Die Methode kann verwendet werden, um zu testen, ob Werte in einer bestimmten Implementierung unterstützt werden, und nur falls notwendig, ein Polyfill herunterzuladen. Sie kann auch verwendet werden, um Benutzeroberflächen zu erstellen, die es Benutzern ermöglichen, ihre bevorzugten lokalisierten Werte auszuwählen, beispielsweise wenn die Benutzeroberfläche mit WebGL oder serverseitig erstellt wird.
Probieren Sie es aus
Syntax
Intl.supportedValuesOf(key)
Parameter
key
-
Ein Schlüssel-String, der die Kategorie der zurückzugebenden Werte angibt. Diese kann sein:
"calendar"
,"collation"
,"currency"
,"numberingSystem"
,"timeZone"
,"unit"
.
Rückgabewert
Ein sortiertes Array mit eindeutigen Zeichenkettenwerten, die die von der Implementierung für den angegebenen Schlüssel unterstützten Werte angeben.
Hinweis:
Während sich die IANA-Datenbank von Zeit zu Zeit ändert, behält die Unicode CLDR-Datenbank (die von Browsern verwendet wird) ältere Zeitzonennamen aus Stabilitätsgründen bei. Einige Browser können den alten Namen verwenden, während andere ihn mit dem neuen Namen überschreiben. Weitere Informationen finden Sie unter Intl.Locale.prototype.getTimeZones
.
Ausnahmen
RangeError
-
Wird ausgelöst, wenn ein nicht unterstützter Schlüssel als Parameter übergeben wurde.
Beispiele
Feature-Testen
Sie können überprüfen, ob die Methode unterstützt wird, indem Sie mit undefined
vergleichen:
if (typeof Intl.supportedValuesOf !== "undefined") {
// method is supported
}
Alle Werte für einen Schlüssel abrufen
Um die unterstützten Werte für Kalender zu erhalten, rufen Sie die Methode mit dem Schlüssel "calendar"
auf.
Sie können dann durch das zurückgegebene Array iterieren, wie unten gezeigt:
Intl.supportedValuesOf("calendar").forEach((calendar) => {
// "buddhist", "chinese", "coptic", "dangi", etc.
});
Hinweis: Das für Kalenderwerte zurückgegebene Array wird immer den Wert "gregory" (gregorianisch) enthalten.
Die anderen Werte werden auf die gleiche Weise erhalten:
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.
});
Ungültiger Schlüssel löst RangeError aus
try {
Intl.supportedValuesOf("someInvalidKey");
} catch (err) {
//Error: RangeError: invalid key: "someInvalidKey"
}
Spezifikationen
Specification |
---|
ECMAScript Internationalization API Specification # sec-intl.supportedvaluesof |
Browser-Kompatibilität
BCD tables only load in the browser