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 y dividir una cadena en palabras, oraciones o grafemas.

Navegadores compatibles

  • 87
  • 87
  • 125
  • 14.1

Origen

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

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

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

Si llamas al método segment() en un objeto Intl.Segmenter con una cadena de texto, se muestra un iterable:

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

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

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