Intl.Segmenter オブジェクトが Baseline の一部になりました

ロケールに依存するテキスト セグメンテーションに Intl.Segmenter を使用して、文字列を単語、文、書記素に分割できるようになりました。

対応ブラウザ

  • 87
  • 87
  • 125
  • 14.1

ソース

中国語や日本語など、ラテン文字以外の多くの言語では、単語の区切りにスペースを使用しません。したがって、空白文字に対して JavaScript の split() メソッドを使用してテキストを単語に分割すると、誤った結果が返されます。

Intl.segmenter() コンストラクタを使用して新しい Intl.Segmenter オブジェクトを作成する場合は、locale と、"grapheme""word"、または "sentence" の値にできる granularity などのオプションを渡します。次の例では、単語を分割して日本語用の新しい 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 ブログの Using the Intl.Segmenter API をご覧ください。

JavaScript での Intl.Segmenter による国際テキスト セグメンテーションに、絵文字で Intl.Segmenter を使用する方法など、その他の例があります。