您现在可以使用 Intl.Segmenter
进行语言区域敏感文本分割,将字符串拆分为字词、句子或字形词。
许多非拉丁语言(如中文和日语)不使用空格来分隔单词。因此,对空格使用 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
与表情符号搭配使用。