プロが教えるわが家の防犯対策術!

社内サーバー(Webサーバーではない)にHTMLを作成しています。
ページ内の一覧から、キーワード検索できるようにInputboxを設置しております。

現在は、1つのキーワードで検索できます↓

jsファイル記述
$(function(){
$('#button').on("click",function(){
var re = new RegExp($('#search').val());
$('#result tbody tr').each(function(){
var tr = $(this);
tr.hide();
$('td', this).each(function(){
var txt = $(this).html();
if(txt.match(re) != null){
tr.show();
}
});
});
});
$('#button2').on("click",function(){
$('#result tr').show();
});
});

html記述
<input type="text" id="search" onkeydown=go"();"> <input type="button"
value="絞り込む" id="button"> <input type="button" value="すべて表示" id="button2">

今後、1つのワードではなく、複数(2か3)のワードであいまい検索を作成したいと思っていますが、なかなかうまくいきません。
なにか、方法はないでしょうか?

検索ボックスの下にデータが行ごとに入力されていて、キーワード検索すると、
ヒットした行だけが表示される、という仕組みを作っています。

A 回答 (1件)

こんにちは



「あいまい検索」とおっしゃっているのが、「OR検索」の意味なのか「類似語等を含む意味の曖昧」なのかよくわかりませんが、仮にORと仮定して・・・

例えば、検索入力部分が
 ・INPUT (スペース区切りで複数単語入力可)
 ・checkbox (絞り込みの場合にチェック)
の二つと仮定します。

1)検索値の設定
  inputのテキストを空白(半角|全角)で分割(split)して、
  各単語をトリミング(前後の空白を除く)
  (結果的にnullになった項目があれば削除)
2)検索の対象を対象変数にセット
  項目全体を対象としてセットする
  絞り込みにチェックがある場合は、表示中の項目のみを対象とする
  (セレクタに :visible を用いれば絞り込める)
3)2)の変数に対して、1)の内容で検索
  1)の単語は配列なので、ORの場合はそのどれかと合致すればヒット
  (もしも、ANDにも対応するなら、全部に合致したときのみヒット)

のような考え方にすればよさそうに思いますが・・・
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!