Agora é possível usar
Intl.Segmenter
para a segmentação de texto sensível à localidade para dividir uma string em palavras, frases,
ou grafemas.
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.