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

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

Note : Intl.Segmenter() ne peut être construit qu'avec new. Tenter de l'appeler sans new génère une TypeError.

Paramètres

locales Facultatif

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 lorsque undefined est 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'argument locales, voir la description du paramètre sur la page principale de Intl.

options Facultatif

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 locales ou options contiennent 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).

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

Spécification
ECMAScript® 2027 Internationalization API Specification
# sec-intl-segmenter-constructor

Compatibilité des navigateurs