JavaScript

Segments.prototype.containing() メソッド


編集:2023.01.20 by T.A.

[Edge]。→

セグメント Segments の指定インデックスの情報をオブジェクトで返します。

構文
Segments.containing([codeUnitIndex])
Segments Segments
codeUnitIndex 省略可。入力 input の文字(コード ユニット)インデックスを表す数値。既定値: 0。
戻り値

以下のプロパティを持つオブジェクト。または undefined(codeUnitIndexが範囲外)。

segment
入力 input から抽出されたセグメントを表す文字列。
index
セグメントとしてのインデックスを表す数値。
input
入力 input の文字列。
isWordLike
値は granularity により異なります。
granularity の値isWordLikeの値
word ブール値。セグメントが単語のようなもの(文字/数字/英字/その他)である場合は true。それ以外は false。
grapheme undefined
sentence undefined
DA=new Intl.Segmenter('ja', {granularity:'word'});  //日本語、。
SO=DA.segment("あ、いい。う う え1");  //
D=SO.containing(0);  //=[object]:[object Object]
	//segment=[string]:あ
	//index=[number]:0
	//input=[string]:あ、いい。う う え1
	//isWordLike=[boolean]:true
D=SO.containing(1);  //=[object]:[object Object]
	//segment=[string]:、
	//index=[number]:1
	//input=[string]:あ、いい。う う え1
	//isWordLike=[boolean]:false
D=SO.containing(2);  //=[object]:[object Object]
	//segment=[string]:いい
	//index=[number]:2
	//input=[string]:あ、いい。う う え1
	//isWordLike=[boolean]:true
D=SO.containing(3);  //=[object]:[object Object]
	//segment=[string]:いい
	//index=[number]:2
	//input=[string]:あ、いい。う う え1
	//isWordLike=[boolean]:true
D=SO.containing(4);  //=[object]:[object Object]
	//segment=[string]:。
	//index=[number]:4
	//input=[string]:あ、いい。う う え1
	//isWordLike=[boolean]:false
D=SO.containing(5);  //=[object]:[object Object]
	//segment=[string]:う
	//index=[number]:5
	//input=[string]:あ、いい。う う え1
	//isWordLike=[boolean]:true
D=SO.containing(6);  //=[object]:[object Object]
	//segment=[string]: ←半角空白1文字。
	//index=[number]:6
	//input=[string]:あ、いい。う う え1
	//isWordLike=[boolean]:false
D=SO.containing(7);  //=[object]:[object Object]
	//segment=[string]:う
	//index=[number]:7
	//input=[string]:あ、いい。う う え1
	//isWordLike=[boolean]:true
D=SO.containing(8);  //=[object]:[object Object]
	//segment=[string]: ←全角空白1文字。
	//index=[number]:8
	//input=[string]:あ、いい。う う え1
	//isWordLike=[boolean]:false
D=SO.containing(9);  //=[object]:[object Object]
	//segment=[string]:え
	//index=[number]:9
	//input=[string]:あ、いい。う う え1
	//isWordLike=[boolean]:true
D=SO.containing(10);  //=[object]:[object Object]
	//segment=[string]:1
	//index=[number]:10
	//input=[string]:あ、いい。う う え1
	//isWordLike=[boolean]:true
D=SO.containing(11);  //=[undefined]:undefined

DA=new Intl.Segmenter('ja', {granularity:'word'});  //日本語、。
SO=DA.segment("01abAB().");  //
D=SO.containing(0);  //=[object]:[object Object]
	//segment=[string]:01abAB
	//index=[number]:0
	//input=[string]:01abAB().
	//isWordLike=[boolean]:true
D=SO.containing(1);  //=[object]:[object Object]
	//segment=[string]:01abAB
	//index=[number]:0
	//input=[string]:01abAB().
	//isWordLike=[boolean]:true
//…
D=SO.containing(5);  //=[object]:[object Object]
	//segment=[string]:01abAB
	//index=[number]:0
	//input=[string]:01abAB().
	//isWordLike=[boolean]:true
D=SO.containing(6);  //=[object]:[object Object]
	//segment=[string]:(
	//index=[number]:6
	//input=[string]:01abAB().
	//isWordLike=[boolean]:false
D=SO.containing(7);  //=[object]:[object Object]
	//segment=[string]:)
	//index=[number]:7
	//input=[string]:01abAB().
	//isWordLike=[boolean]:false
D=SO.containing(8);  //=[object]:[object Object]
	//segment=[string]:.
	//index=[number]:8
	//input=[string]:01abAB().
	//isWordLike=[boolean]:false
D=SO.containing(9);  //=[undefined]:undefined

Intl.Segmenter()segment()

セグメントの内容を得る
DA=new Intl.Segmenter('ja', {granularity:'word'});  //日本語、粒度:ワード。
SO=DA.segment("あい、かき");  //=Segmentsオブジェクト
I=0;
while(SO.containing(I)){
  D=SO.containing(I);  //=[object]:[object Object]
  alert(D.segment);
  I++;
}
//表示結果:「あい」「あい」「、」「かき」「かき」
//↑これが限界。

DA=new Intl.Segmenter('ja', {granularity:'word'});  //日本語、粒度:ワード。
SO=DA.segment("あい、かき");  //=Segmentsオブジェクト
I=0;
for(P of SO){
  alert(P.segment);
}
//表示結果:「あい」「、」「かき」

DA=new Intl.Segmenter('ja', {granularity:'word'});
SO=DA.segment("あい、かき");  //=Segmentsオブジェクト
It=SO[Symbol.iterator]();
for(Seg of It){
  alert(Seg.segment);
}
//表示結果:「あい」「、」「かき」

whilefor~of[Symbol.iterator]


テスト