Web/JavaScript/Reference/Global objects/Intl/Locale/caseFirst

From Get docs


The Intl.Locale.prototype.caseFirst property is an accessor property that returns whether case is taken into account for the locale's collation rules.

Description

A locale's collation rules are used to determine how strings are ordered in that locale. Certain locales use a character's case (UPPERCASE or lowercase) in the collation process. This additional rule can be expressed in a Locale's caseFirst property.

There are 3 values that the caseFirst property can have, outlined in the table below.

caseFirst values

Value Description
upper Upper case to be sorted before lower case.
lower Lower case to be sorted before upper case.
false No special case ordering.

Examples

Setting the caseFirst value via the locale string

In the Unicode locale string spec, the values that caseFirst represents correspond to the key kf. kf is treated as a locale string "extension subtag". These subtags add additional data about the locale, and are added to locale identifiers by using the -u extension key. Thus, the caseFirst value can be added to the inital locale identifier string that is passed into the Locale constructor. To add the caseFirst value, first add the -u extension key to the string. Next, add the -kf extension key to indicate that you are adding a value for caseFirst. Finally, add the caseFirst value to the string.

let caseFirstStr = new Intl.Locale("fr-Latn-FR-u-kf-upper");
console.log(caseFirstStr.caseFirst); // Prints "upper"

Setting the caseFirst value via the configuration object argument

The Intl.Locale constructor has an optional configuration object argument, which can be used to pass extension types. Set the caseFirst property of the configuration object to your desired caseFirst value, and then pass it into the constructor.

let caseFirstObj= new Intl.Locale("en-Latn-US", {caseFirst: "lower"});
console.log(us12hour.caseFirst); // Prints "lower"

Specifications

Specification
ECMAScript Internationalization API (ECMA-402)

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile Server
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet Node.js
caseFirst Chrome

Full support 74

Edge

Full support 79

Firefox

Full support 75

IE

No support No

Opera

Full support 62

Safari

Full support 14

WebView Android

Full support 74

Chrome Android

Full support 74

Firefox Android

No support No

Opera Android

Full support 53

Safari iOS

Full support 14

Samsung Internet Android

Full support 11.0

nodejs Full support 12.0.0

Notes'

Full support 12.0.0

Notes'

Notes' Before version 13.0.0, only the locale data for en-US is available by default. See the Locale() constructor for more details.

Legend

Full support  
Full support
No support  
No support
See implementation notes.'
See implementation notes.


See also