O objeto "Intl.segmentr" agora faz parte do valor de referência.

Agora é possível usar Intl.Segmenter para a segmentação de texto sensível à localidade para dividir uma string em palavras, frases, ou grafemas.

Compatibilidade com navegadores

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

Origem

Muitas línguas não latinas, como chinês e japonês, não use espaços para separar as palavras. Portanto, usar a propriedade split() do JavaScript método em espaços em branco para dividir o texto em palavras, retornará resultados incorretos.

Ao criar um novo objeto Intl.Segmenter com o construtor Intl.segmenter(), transmitir um locale e opções como granularity, que podem tenham valores de "grapheme", "word" ou "sentence". O seguinte exemplo cria um novo objeto Intl.Segmenter para japonês, dividido em palavras.

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

Chamar o segment() Método em um objeto Intl.Segmenter com uma string de texto retorna um iterável:

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

Leia Como usar a API Intl.Segmentr no blog do Polypane para ver um tutorial excelente sobre como usar esse recurso.

Segmentação de texto internacional com clusters internacionais em JavaScript tem mais exemplos, incluindo como usar Intl.Segmenter com emojis.