Intl.Segmenter 物件現已納入基準

您現在可以使用 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