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 を絵文字で使用する方法など、他にも例があります。