L'objet Intl.Segmenter fait désormais partie de la version de référence

Vous pouvez désormais utiliser Intl.Segmenter pour la segmentation de texte en fonction des paramètres régionaux afin de diviser une chaîne en mots, phrases ou graphèmes.

Navigateurs pris en charge

  • 87
  • 87
  • 125
  • 14.1

Source

De nombreuses langues non latines, telles que le chinois et le japonais, n'utilisent pas d'espace pour séparer les mots. Par conséquent, l'utilisation de la méthode JavaScript split() sur les espaces blancs pour diviser du texte en mots renvoie des résultats incorrects.

Lorsque vous créez un objet Intl.Segmenter avec le constructeur Intl.segmenter(), transmettez un locale et des options telles que granularity, qui peut avoir les valeurs "grapheme", "word" ou "sentence". L'exemple suivant crée un objet Intl.Segmenter pour le japonais, divisé en fonction du nombre de mots.

const segmenter = new Intl.Segmenter('ja-JP', { granularity: 'word' });

L'appel de la méthode segment() sur un objet Intl.Segmenter avec une chaîne de texte renvoie un itérable:

const segments = segmenter.segment(str);
console.table(Array.from(segments));

Lisez l'article Utiliser l'API Intl.Segmenter sur le blog Polypane pour découvrir un excellent tutoriel sur l'utilisation de cette fonctionnalité.

La page Segmentation internationale du texte avec Intl.Segmenter en JavaScript propose davantage d'exemples, y compris sur l'utilisation de Intl.Segmenter avec des emoji.