Объект Intl.Segmenter теперь является частью Baseline.

Теперь вы можете использовать Intl.Segmenter для сегментации текста с учетом локали, чтобы разделить строку на слова, предложения или графемы.

Поддержка браузера

  • Хром: 87.
  • Край: 87.
  • Фаерфокс: 125.
  • Сафари: 14.1.

Источник

Во многих нелатинских языках, таких как китайский и японский, для разделения слов не используются пробелы. Таким образом, использование метода JavaScript split() для разделения текста на слова приведет к неверным результатам.

При создании нового объекта Intl.Segmenter с помощью конструктора Intl.segmenter() передайте locale и параметры, включая granularity , которые могут иметь значения "grapheme" , "word" или "sentence" . В следующем примере создается новый объект Intl.Segmenter для японского языка с разделением по словам.

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

Вызов метода segment() для объекта Intl.Segmenter со строкой текста возвращает итерируемый объект:

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

Прочтите «Использование API Intl.Segmenter» в блоге Polypane, чтобы получить отличное руководство по использованию этой функции.

Международная сегментация текста с помощью Intl.Segmenter в JavaScript содержит больше примеров, в том числе, как использовать Intl.Segmenter с эмодзи.