ドキュメントのテキストを検索する

Finding Text in the Document Finding Text in the Document *
*前のトピック: TextRangeオブジェクトの使用
*次のトピック: 位置指定

ドキュメントのテキストを検索する

TextRangeオブジェクトのfindTextメソッドを使うと、ドキュメント内の指定した文字列を検索できる。このメソッドは指定したレンジの先頭から検索を開始し、文字列が見つかるとそのレンジを指定するので、文字列を完全に囲むことができる。次の例は、findTextメソッドを使って"sample"という単語の各インスタンスを検索し、文字列を見つけたインスタンス回数をメッセージで表示する。

var rng = document.body.createTextRange();
for (i=0; rng.findText("sample")!=false; i++) {
rng.collapse( );
}
alert("There are " + i + " instances of sample");

上記の例では、"sample"の同一インスタンスが2回数えられないように、collapseメソッドを使って、テキストレンジの始点を終点として同じ位置に移動する。

findTextメソッドとtextプロパティを使うと、グローバルな文字列置換を実行することができる。次の例は、"sample"という各インスタンスを検索し、すべて"final"という単語に置き換える。

var rng = document.body.createTextRange();
for (i=0; rng.findText("sample")!=false; i++) {
rng.text = "final";
}

selectメソッドを使うと、検索されたテキストを選択(ハイライト表示)するのでユーザーが見つけやすい。同様に、scrollIntoViewメソッドを使うと、検索されたテキストがウィンドウ内に表示されるようにスクロールする。この2つのメソッドを共に使えば、検索結果を明確にユーザーに表示できる。次に示すJScriptの例では、"sample"を検索し、その単語を選択し、ウィンドウ内の上端にその単語をスクロールする。

var rng = document.body.createTextRange();
if (rng.findText("sample")==true) {
rng.select();
rng.scrollIntoView();
}

また、ユーザーが作成したセレクションからもテキストレンジを作成できる。selectionオブジェクトのcreateRangeは、テキストレンジを返す。createTextRangeを使って作成したレンジと同様、このレンジに同じメソッドとプロパティが使える。

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