Intl.Segmenter 对象现已纳入 Baseline

您现在可以使用 Intl.Segmenter 用于将字符串拆分为字词、句子、 或字形。

浏览器支持

  • Chrome:87。 <ph type="x-smartling-placeholder">
  • Edge:87。 <ph type="x-smartling-placeholder">
  • Firefox:125。 <ph type="x-smartling-placeholder">
  • Safari:14.1. <ph type="x-smartling-placeholder">

来源

许多非拉丁语系的语言,如中文和日语, 不要使用空格分隔字词。因此,使用 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));

阅读使用 Intl.Segmenter API ,了解有关如何使用该功能的优秀教程。

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