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 du texte en fonction des paramètres régionaux afin de diviser une chaîne en mots, phrases, ou graphèmes.

Navigateurs pris en charge

  • Chrome: 87 <ph type="x-smartling-placeholder">
  • Edge: 87 <ph type="x-smartling-placeholder">
  • Firefox: 125 <ph type="x-smartling-placeholder">
  • Safari: 14.1. <ph type="x-smartling-placeholder">

Source

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

Lorsque vous créez un objet Intl.Segmenter avec Intl.segmenter(), transmettre un locale et des options, y compris granularity, qui peuvent avoir les valeurs "grapheme", "word" ou "sentence". Les éléments suivants : L'exemple crée un objet Intl.Segmenter pour le japonais, en les divisant en fonction des mots.

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

En appelant 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));

Découvrez comment utiliser l'API Intl.Segmenter. sur le blog de Polypane pour découvrir un excellent tutoriel sur l'utilisation de cette fonctionnalité.

Segmentation internationale de texte avec Intl.Segmenter en JavaScript contient d'autres exemples, y compris comment utiliser Intl.Segmenter avec des emoji.