Constructeur Intl.Segmenter()
Baseline
2024
Nouvellement disponible
Depuis April 2024, cette fonctionnalité fonctionne sur les appareils et les versions de navigateur les plus récents. Elle peut ne pas fonctionner sur les appareils ou navigateurs plus anciens.
Le constructeur Intl.Segmenter() crée des objets Intl.Segmenter.
Exemple interactif
const segmenterFr = new Intl.Segmenter("fr", { granularity: "word" });
const string = "Que ma joie demeure";
const iterator = segmenterFr.segment(string)[Symbol.iterator]();
console.log(iterator.next().value.segment);
// Résultat attendu : 'Que'
console.log(iterator.next().value.segment);
// Résultat attendu : ' '
Syntaxe
new Intl.Segmenter()
new Intl.Segmenter(locales)
new Intl.Segmenter(locales, options)
Paramètres
localesFacultatif-
Une chaîne de caractères avec une balise de langue BCP 47 ou une instance de
Intl.Locale, ou un tableau de tels 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 deIntl. optionsFacultatif-
Un objet contenant les propriétés suivantes, dans l'ordre dans lequel elles sont récupérées (toutes sont optionnelles) :
localeMatcher-
L'algorithme de correspondance de la locale à 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. granularity-
La granularité avec laquelle l'entrée doit être segmentée. Les valeurs possibles sont :
"grapheme"(par défaut)-
Segmente l'entrée aux limites des grappes de graphèmes (caractères perçus par l'utilisateur·ice), comme déterminé par la locale.
"word"-
Segmente l'entrée aux limites des mots, comme déterminé par la locale.
"sentence"-
Segmente l'entrée aux limites des phrases, comme déterminé par la locale.
Valeur de retour
Une nouvelle instance de Intl.Segmenter.
Exceptions
RangeError-
Levée si
localesouoptionscontiennent des valeurs invalides.
Exemples
>Utilisation simple
Dans l'exemple suivant, on compte les mots d'une chaîne en japonais (où le découpage de la chaîne à l'aide des méthodes de String aurait fourni un résultat incorrect).
const text = "吾輩は猫である。名前はたぬき。";
const japaneseSegmenter = new Intl.Segmenter("ja-JP", { granularity: "word" });
console.log(
[...japaneseSegmenter.segment(text)].filter((segment) => segment.isWordLike)
.length,
);
// affiche 8 car le texte est segmenté en '吾輩'|'は'|'猫'|'で'|'ある'|'。'|'名前'|'は'|'たぬき'|'。'
Spécifications
| Spécification |
|---|
| ECMAScript® 2027 Internationalization API Specification> # sec-intl-segmenter-constructor> |