Intl.Locale.prototype.caseFirst

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.

The caseFirst accessor property of Intl.Locale instances returns whether case is taken into account for this 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 Intl.Locale object'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 initial 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.

js
const locale = new Intl.Locale("fr-Latn-FR-u-kf-upper");
console.log(locale.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.

js
const locale = new Intl.Locale("en-Latn-US", { caseFirst: "lower" });
console.log(locale.caseFirst); // Prints "lower"

Specifications

Specification
ECMAScript® 2025 Internationalization API Specification
# sec-Intl.Locale.prototype.caseFirst

Browser compatibility

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
caseFirst

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

See also