findText

findText findText *
*前のトピック: expand
*次のトピック: focus

findText

解説

ドキュメントの中でテキストを検索する。検索範囲の開始位置および終了位置を指定する。

構文

bFound = object**.findText(sText [ , iSearchScope ] [ , iFlags])**

パラメータ解説
sText検索したいテキストを指定する。
iSearchScopeオプション。検索する方向を示す整数。正の場合には開始位置から終了位置へ向かっての検索を行う。負の場合には逆方向に検索する。
iFlagsオプション。検索のタイプを指定するフラグで、次のいずれかまたは両方を指定できる。
2検索語の全体一致。
4大文字小文字の区別付き。

戻り値

テキストが見つかった場合にはTRUE、そうでない場合にはFALSEを返す。

注意事項

範囲は、degenerateと非degenerateという2つの異なる状態を持っている。テキストエディタの考え方で言えば、degenerate範囲とはテキストエディタの挿入ポイントのようなもので、いずれの語も選択されていない。その代わり、語と語の間を指定していることになる。 degenerate範囲の終了位置は連続している。一方、非degenerate範囲はテキストエディタで選択している状態である。 ある量のテキストが選択され、終了位置は連続していない。

degenerate状態の範囲は、findTextメソッドの動作に大きな影響を与える。 iSearchScopeパラメータに渡された値は、検索されるドキュメントの一部を制御する。 範囲がdegenerate状態であれば、検索方向を指定するために、大きな正の数または大きな負の数を指定できる。 範囲が非degenerate状態では、0を渡すと範囲によって選択されたテキストだけが検索される。 大きな正の数が渡された場合には、範囲の開始位置の右側のテキストが検索される。 大きな負の数が渡された場合には、範囲の終了位置の左側のテキストが検索される。 使用できる数はそれぞれ、9999999と-9999999である。 iSearchScopeに他の値を与えることは、将来にわたってInternet Explorerではサポートされない。

この機能は、Win32プラットフォーム以外ではサポートされていない。Internet Explorerのクロスプラットフォーム互換性情報についてはMicrosoft Knowledge Baseの記事番号 Q172976 を参照すること。

次の例はドキュメントのBODYにTextRangeオブジェクトを作成し、さまざまなフラグでテキスト検索を行っている。結果はコードのコメントに示してある。

<HTML>
<BODY>
Leonardo da Vinci was one of the great masters of the High Renaissance,
especially in painting, sculpture, architecture, engineering, and science.
</BODY>
</HTML>

<SCRIPT>
   var oRange = document.body.createTextRange();
   var sBookMark = oRange.getBookmark(); // ブックマークの中の現在の位置を記録しておく。
   oRange.findText('leo');               // 結果はtrue。大文字小文字を区別し、部分一致。
   oRange.moveToBookmark(sBookMark);	 // ブックマークに使っている範囲をリセットする。
   oRange.findText('engineer', 0, 2);    // 結果はfalse。単語全体の一致で検索。
   oRange.moveToBookmark(sBookMark);
   oRange.findText('high', 0, 4);        // 結果はfalse。大文字小文字を区別して検索。
   oRange.moveToBookmark(sBookMark);
   oRange.findText('Leonardo', 0, 6);    // 結果はtrue。大文字小文字を区別して、単語全体の一致で検索。

   // degenerateの場合
   oRange.moveToBookmark(sBookMark);
   oRange.collapse();                    // 範囲をdegenerateにする。
   oRange.findText('Leonardo', 0, 6);    // 結果はfalse。この場合、大きな文字数を指定しなければならない。
   oRange.findText('Leonardo');          // 結果はtrue。3番目のパラメータは指定しない。そのため、カウントの必要はない。
   oRange.findText('Leonardo', 1000000000, 6);    // 結果はtrue。大きな数字で範囲をカバーする。
</SCRIPT>

適用

TextRange

Up トップに戻る
© 1997 Microsoft Corporation. All rights reserved. Terms of Use.