El objeto Intl.Segmenter ahora forma parte de Baseline

Ahora puedes usar Intl.Segmenter para la segmentación de texto sensible a la configuración regional, para dividir una cadena en palabras, oraciones, o grafemas.

Navegadores compatibles

  • Chrome: 87.
  • Borde: 87.
  • Firefox: 125
  • Safari: 14.1.

Origen

Muchos idiomas no latinos, como el chino y el japonés, no uses espacios para separar palabras. Por lo tanto, el uso de split() de JavaScript en espacios en blanco para dividir el texto en palabras y se mostrarán resultados incorrectos.

Cuando creas un nuevo objeto Intl.Segmenter con el El constructor Intl.segmenter(), pasa un locale y opciones como granularity, que pueden tener valores de "grapheme", "word" o "sentence". Lo siguiente ejemplo crea un nuevo objeto Intl.Segmenter para japonés y se divide en palabras.

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

Llamar al segment() en un objeto Intl.Segmenter con una cadena de texto muestra un elemento iterable:

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

Lee Usa la API de Intl.Segmenter. en el blog de Polypane para obtener un instructivo excelente sobre cómo usar esta función.

Segmentación internacional de texto con Intl.Segmenter en JavaScript tiene más ejemplos, incluido cómo usar Intl.Segmenter con emojis.