Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Constructeur Intl.Segmenter()

Baseline 2024
Newly available

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 un objet Intl.Segmenter permettant la segmentation d'un texte selon la locale.

Exemple interactif

const segmenterFr = new Intl.Segmenter("fr", { granularity: "word" });
const string1 = "Que ma joie demeure";

const iterator1 = segmenterFr.segment(string1)[Symbol.iterator]();

console.log(iterator1.next().value.segment);
// Expected output: 'Que'

console.log(iterator1.next().value.segment);
// Expected output: ' '

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® 2026 Internationalization API Specification
# sec-intl-segmenter-constructor

Compatibilité des navigateurs