findText
前のトピック: expand 次のトピック: focus |
findText
解説
ドキュメントの中でテキストを検索する。検索範囲の開始位置および終了位置を指定する。
構文
bFound = object**.findText(sText [ , iSearchScope ] [ , iFlags])**
パラメータ | 解説 | ||||
sText | 検索したいテキストを指定する。 | ||||
iSearchScope | オプション。検索する方向を示す整数。正の場合には開始位置から終了位置へ向かっての検索を行う。負の場合には逆方向に検索する。 | ||||
iFlags | オプション。検索のタイプを指定するフラグで、次のいずれかまたは両方を指定できる。 | ||||
|
戻り値
テキストが見つかった場合には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>
適用
トップに戻る
© 1997 Microsoft Corporation. All rights reserved. Terms of Use.