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