【JavaScript ECMAScript】Intl::Segments.prototype.containingインスタンスメソッドの使い方
Segments.prototype.containing()インスタンスメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Segments.prototype.containing()メソッドは、Intl.Segmenter.prototype.segment()メソッドによって生成されるSegmentsオブジェクトのインスタンスに対して、指定された文字列のインデックス位置がどのテキストセグメントに属するかを特定するメソッドです。このメソッドは、自然言語のテキストが単語や文字などの意味のある単位(セグメント)に分割された結果の中から、特定のインデックス位置に対応するセグメント情報を効率的に取得するために利用されます。
具体的には、Segments.prototype.containing()は数値型の引数を一つ取ります。この引数は、元の文字列における0から始まるインデックス位置を示します。メソッドは、このインデックス位置を含むセグメントを表すオブジェクトを返します。返されるオブジェクトには、該当するセグメントのテキスト内容(segment)、元の文字列におけるそのセグメントの開始インデックス(index)、このセグメントが属する元の文字列全体(input)、そしてセグメントの区切り方を示すタイプ(breakType)などの情報が含まれます。
例えば、Webアプリケーションでユーザーが長文テキストの特定の位置をクリックした際に、そのクリック位置がどの単語に当たるのかを判断したい場合に、このメソッドが役立ちます。事前にIntl.Segmenterを使用してテキストをセグメント化しておき、その後containing()メソッドにクリック位置のインデックスを渡すことで、該当する単語セグメントの情報を簡潔に取得できます。これにより、多言語に対応したテキスト処理やインタラクションを、言語ごとの適切なセグメント区切りに基づいて高度に実現することが可能です。引数として指定するインデックスは、JavaScriptの文字列操作と同様にUTF-16コードユニットに基づいています。
構文(syntax)
1const segmenter = new Intl.Segmenter("en", { granularity: "word" }); 2const segments = segmenter.segment("Hello World"); 3const segment = segments.containing(0);
引数(parameters)
index
- index: number: 指定したコードポイントのインデックス (0から始まる整数)
戻り値(return)
Intl.Segment または undefined
Intl.Segment.prototype.containing() メソッドは、指定された位置を内部に含むセグメントが見つかった場合、そのセグメントを表す Intl.Segment オブジェクトを返します。見つからなかった場合は undefined を返します。