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' });

使用文本字符串对 Intl.Segmenter 对象调用 segment() 方法会返回一个可迭代对象:

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

如需查看有关如何使用此功能的精彩教程,请参阅 Polypane 博客上的使用 Intl.Segmenter API

在 JavaScript 中使用 Intl.Segmenter 进行国际文本分割部分提供了更多示例,包括如何将 Intl.Segmenter 与表情符号搭配使用。