人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

JavaScript でページ内検索をしてヒットした件数を取得したい

Chrome を使って、テキストボックスに入力した文字列がそのページに何件あるかを表示するプログラムを考えています。
JavaScript の window.find を使うのだと思いますが、具体的にうまくできません。

関数部分だけで結構ですので、どのように記述すればよいか教えてください。


ローカル専用です。自分しか使いません。
基本は Chrome、できれば Firefox と IE で動けばなおよしです
文字列入力と JavaScript に渡すところ、件数を HTML に出力するところはなくてもOKです (あれば嬉しいですが)。
OS は Windows, Chrome は 4.0 です。

●質問者: にぎたま
●カテゴリ:ウェブ制作
✍キーワード:chrome firefox HTML IE JavaScript
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● ofk
●80ポイント ベストアンサー

http://example.com/ (dummy)

window.findは検索ダイアログを出す関数であるので今回の目的に利用することはできません.

個数を数える場合は自分で記述する必要があります.

簡易的な物だと以下のようになります.

function search_count(text, search) {
 return (text+"").split(search).length - 1;
}
var input = "JavaScript"; // document.getElementById("input").value等で取得する
alert(search_count(document.documentElement.textContent, input)); // 大文字小文字を区別する場合
alert(search_count(document.documentElement.textContent, new RegExp(input.replace(/\W/g, "\\$&"), "i"))); // 大文字小文字を区別しない場合
◎質問者からの返答

正常に動作することを確認しました。

return (text+"").split(search).length - 1; のところ、「-1」は不要のようです。

大文字小文字のパターンも作っていただきありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ