Agora você pode usar
Intl.Segmenter
para segmentação de texto sensível à localidade e dividir uma string em palavras, frases
ou grafemas.
Muitos idiomas não latinos, como chinês e japonês,
não usam espaços para separar palavras. Portanto, usar o método JavaScript split()
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()
,
transmita um locale
e opções incluindo granularity
, que pode
ter valores de "grapheme"
, "word"
ou "sentence"
. O exemplo
a seguir cria um novo objeto Intl.Segmenter
para japonês, dividindo em palavras.
const segmenter = new Intl.Segmenter('ja-JP', { granularity: 'word' });
Chamar o método
segment()
em um objeto Intl.Segmenter
com uma string de texto
retorna um iterável:
const segments = segmenter.segment(str);
console.table(Array.from(segments));
Acesse Using the Intl.segmentr API (em inglês) no blog do Polypane para ver um excelente tutorial sobre como usar esse recurso.
A Segmentação de texto internacional com segmentação internacional em JavaScript
tem mais exemplos, incluindo como usar Intl.Segmenter
com emojis.