Constructeur Intl.Collator()
Baseline
Large disponibilité
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 2017.
Le constructeur Intl.Collator() crée des objets Intl.Collator.
Exemple interactif
console.log(["Z", "a", "z", "ä"].sort(new Intl.Collator("de").compare));
// Résultat attendu : Array ["a", "ä", "z", "Z"]
console.log(["Z", "a", "z", "ä"].sort(new Intl.Collator("sv").compare));
// Résultat attendu : Array ["a", "z", "Z", "ä"]
console.log(
["Z", "a", "z", "ä"].sort(
new Intl.Collator("de", { caseFirst: "upper" }).compare,
),
);
// Résultat attendu : Array ["a", "ä", "Z", "z"]
Syntaxe
new Intl.Collator()
new Intl.Collator(locales)
new Intl.Collator(locales, options)
Intl.Collator()
Intl.Collator(locales)
Intl.Collator(locales, options)
Note :
Intl.Collator() peut être appelé avec ou sans new. Les deux créent une nouvelle instance de Intl.Collator.
Paramètres
localesFacultatif-
Une chaîne de caractères avec une étiquette de langue BCP 47 ou une instance de
Intl.Locale, ou un tableau de ces identifiants de locale. La locale par défaut de l'environnement d'exécution est utilisée lorsqueundefinedest passé ou lorsqu'aucun des identifiants de locale définis n'est pris en charge. Pour la forme générale et l'interprétation de l'argumentlocales, voir la description du paramètre sur la page principale d'Intl.Les clés d'extension Unicode suivantes sont autorisées :
Ces clés peuvent également être définies avec
options(comme listé ci-dessous). Lorsque les deux sont définis, la propriétéoptionsa la priorité. optionsFacultatif-
Un objet contenant les propriétés suivantes, dans l'ordre où elles sont récupérées (toutes sont optionnelles) :
usage-
Indique si la comparaison sert à trier une liste de chaînes de caractères ou à filtrer de façon approximative (pour l'écriture latine, insensible aux diacritiques et à la casse) une liste de chaînes de caractères par clé. Les valeurs possibles sont :
"sort"(par défaut)-
Pour trier une liste de chaînes de caractères.
"search"-
Pour filtrer une liste de chaînes de caractères en testant chaque élément de la liste pour une correspondance complète avec une clé. Avec
"search", il faut seulement vérifier sicompare()retourne zéro ou une valeur différente de zéro et peut ne pas distinguer les valeurs non nulles entre elles. Il n'est donc pas approprié d'utiliser"search"pour trier/ordonner.
localeMatcher-
L'algorithme de correspondance des locales à utiliser. Les valeurs possibles sont
"lookup"et"best fit"; la valeur par défaut est"best fit". Pour plus d'informations sur cette option, voir Identification et négociation de la locale. collation-
Variantes de collations pour certaines locales, telles que
"emoji","pinyin","stroke", etc. N'a d'effet que lorsqueusagevaut"sort"(car"search"utilise son propre type de collation). Pour la liste des types de collations pris en charge, voirIntl.supportedValuesOf(); la valeur par défaut est"default". Cette option peut aussi être définie via la clé d'extension Unicodeco; si les deux sont fournies, la propriétéoptionsa la priorité. numeric-
Indique si une collation numérique doit être utilisée, de sorte que « 1 » < « 2 » < « 10 ». Les valeurs possibles sont
trueetfalse; la valeur par défaut estfalse. Cette option peut aussi être définie via la clé d'extension Unicodekn; si les deux sont fournies, la propriétéoptionsa la priorité. caseFirst-
Indique si les majuscules ou les minuscules doivent être triées en premier. Les valeurs possibles sont
"upper","lower"et"false"(utilise la valeur par défaut de la locale) ; la valeur par défaut est"false". Cette option peut aussi être définie via la clé d'extension Unicodekf; si les deux sont fournies, la propriétéoptionsa la priorité. sensitivity-
Indique quelles différences dans les chaînes de caractères doivent entraîner des valeurs de résultat non nulles. Les valeurs possibles sont :
"base"-
Seules les chaînes de caractères qui diffèrent par les lettres de base sont considérées comme différentes. Exemples : a ≠ b, a = á, a = A. Dans l'algorithme de collation Unicode, cela correspond au niveau de force primaire.
"accent"-
Seules les chaînes de caractères qui diffèrent par les lettres de base ou les accents et autres marques diacritiques sont considérées comme différentes. Exemples : a ≠ b, a ≠ á, a = A. Dans l'algorithme de collation Unicode, cela correspond au niveau de force secondaire.
"case"-
Seules les chaînes de caractères qui diffèrent par les lettres de base ou la casse sont considérées comme différentes. Exemples : a ≠ b, a = á, a ≠ A. Dans l'algorithme de collation Unicode, cela correspond au niveau de force primaire avec gestion de la casse.
"variant"-
Les chaînes de caractères qui diffèrent par les lettres de base, les accents et autres marques diacritiques, ou la casse, sont considérées comme différentes. D'autres différences peuvent aussi être prises en compte. Exemples : a ≠ b, a ≠ á, a ≠ A. Dans l'algorithme de collation Unicode, cela correspond au niveau de force tertiaire.
La valeur par défaut est
"variant"pour l'usage"sort"; elle dépend de la locale pour l'usage"search"selon la spécification, mais est généralement aussi"variant". Comme la fonctionnalité principale de"search"est le filtrage insensible aux accents et à la casse, la valeur"base"est la plus logique (et peut-être"case"). ignorePunctuation-
Indique si la ponctuation doit être ignorée. Les valeurs possibles sont
trueetfalse. La valeur par défaut esttruepour le thaï (th) etfalsepour toutes les autres langues.
Exceptions
RangeError-
Levée si
localesouoptionscontiennent des valeurs invalides.
Exemples
>Utiliser Collator()
Dans l'exemple suivant, on illustre la comparaison de deux chaînes de caractères et le résultat obtenu selon que l'une est située avant ou après, ou de façon équivalente selon l'ordre lexicographique de la langue :
console.log(new Intl.Collator().compare("a", "c")); // -1, ou une valeur négative
console.log(new Intl.Collator().compare("c", "a")); // 1, ou une valeur positive
console.log(new Intl.Collator().compare("a", "a")); // 0
On notera que les résultats obtenus avec les lignes précédentes peuvent varier d'un navigateur à l'autre et entre les différentes versions. En effet, les valeurs numériques obtenues sont spécifiques aux implémentations et la spécification n'impose que le signe de la valeur obtenue.
Spécifications
| Spécification |
|---|
| ECMAScript® 2026 Internationalization API Specification> # sec-intl-collator-constructor> |
Compatibilité des navigateurs
Voir aussi
- L'objet
Intl.Collator - L'objet
Intl