Intl.DisplayNames.prototype.of()
The of()
method of Intl.DisplayNames
instances receives a code and returns a string based on the locale and options provided when instantiating this Intl.DisplayNames
object.
Try it
Syntax
js
of(code)
Parameters
code
-
The
code
to provide depends on thetype
:- If the type is "region",
code
should be either an two-letter ISO 3166 region code, or a three-digit UN M49 geographic region. It is required to follow theunicode_region_subtag
grammar. - If the type is "script",
code
should be an four-letter ISO 15924 script code. It is required to follow theunicode_script_subtag
grammar. - If the type is "language",
code
should be a languageCode ["-" scriptCode] ["-" regionCode ] *("-" variant ) subsequence of theunicode_language_id
grammar. languageCode is either a two-letter ISO 639-1 language code or a three-letter ISO 639-2 language code. - If the type is "currency",
code
should be a three-letter ISO 4217 currency code. It is required to have exactly three alphabetic characters. - If the type is "dateTimeField",
code
should be one of:"era"
,"year"
,"quarter"
,"month"
,"weekOfYear"
,"weekday"
,"day"
,"dayPeriod"
,"hour"
,"minute"
,"second"
,"timeZoneName"
. - If the type is "calendar",
code
should be a calendar key. It is required to follow thetype
grammar of a Unicode locale identifier.
- If the type is "region",
Return value
A language-specific formatted string, or undefined
if there's no data for the input and fallback
is "none"
.
Note: fallback
is only used if code
is structurally valid. See using fallback.
Exceptions
RangeError
-
Thrown if
code
is not structurally valid for the giventype
.
Examples
Using the of method
js
const regionNames = new Intl.DisplayNames("en", { type: "region" });
regionNames.of("419"); // "Latin America"
const languageNames = new Intl.DisplayNames("en", { type: "language" });
languageNames.of("fr"); // "French"
const currencyNames = new Intl.DisplayNames("en", { type: "currency" });
currencyNames.of("EUR"); // "Euro"
Using fallback
When the Intl.DisplayNames
is constructed with fallback: "code"
, the of()
method will return the code
if the input looks structurally valid but there's no data for the input. If fallback
is "none"
, undefined
is returned.
js
console.log(
new Intl.DisplayNames("en", { type: "region", fallback: "code" }).of("ZL"),
); // "ZL"
console.log(
new Intl.DisplayNames("en", { type: "region", fallback: "none" }).of("ZL"),
); // undefined
However, this only applies if the code
is structurally valid. For example, if type
is "region"
but code
does not follow the unicode_region_subtag
grammar (2 alphabetic characters or 3 numeric characters), a RangeError
is directly thrown instead of using the fallback.
js
console.log(
new Intl.DisplayNames("en", { type: "region", fallback: "code" }).of("ZLC"),
); // throws RangeError: invalid value "ZLC" for option region
Specifications
Specification |
---|
ECMAScript Internationalization API Specification # sec-Intl.DisplayNames.prototype.of |
Browser compatibility
BCD tables only load in the browser