Constructeur Intl.Segmenter()

Le constructeur Intl.Segmenter() crée un objet Intl.Segmenter permettant la segmentation d'un texte selon la locale.

Exemple interactif

Syntaxe

js
new Intl.Segmenter();
new Intl.Segmenter(locales);
new Intl.Segmenter(locales, options);

Paramètres

locales Facultatif

Une chaîne qui est une balise de langue BCP 47 ou un tableau de telles chaînes. Pour la forme générale et l'interprétation de cet argument, voir la page Intl.

options Facultatif

Un objet avec une ou plusieurs des propriétés suivantes :

granularity Facultatif

Une chaîne de caractères qui peut valoir :

"grapheme" (la valeur par défaut)

Découpe la chaîne en groupes de graphèmes (grapheme cluster) (ce qui correspond aux caractères perçus pour la personne qui lit), comme déterminé par la locale.

"word"

Découpe la chaîne en segments aux limites de mots, comme déterminé par la locale.

"sentence"

Découpe la chaîne en segments aux limites de phrases, comme déterminé par la locale.

localeMatcher Facultatif

L'algorithme de correspondance des locales à utiliser. Les valeurs possibles sont :

"best fit" (la valeur par défaut)

L'environnement d'exécution peut éventuellement choisir une locale plus adaptée que celle fournie par l'algorithme utilisé par "lookup".

"lookup"

Utilise l'algorithme de recherche BCP 47 pour choisir la locale à partir de locales. Pour chaque locale contenue dans locales, l'environnement d'exécution renvoie la première locale prise en charge (en retirant éventuellement des sous-étiquettes de l'étiquette de locale fournie afin d'en sélectionner une prise en charge ; autrement dit, si on fournit "de-CH" pour locales, cet algorithme pourra fournir "de" en résultat si "de" est prise en charge mais que "de-CH" ne l'est pas).

Valeur de retour

Une nouvelle instance de Intl.Segments.

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).

js
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

Specification
ECMAScript Internationalization API Specification
# sec-intl-segmenter-constructor

Compatibilité des navigateurs

BCD tables only load in the browser