14、検索


会員の名前を入力したら、URLやメールアドレスが検索できるプログラムになれば、 本格的なデータ−ベースソフトに近づくことができます!
1、文字の照合

置場にある文字データが指定した文字を含んでいるか? を調べるには

indexOf( )

という命令が用意されていす(「O」は大文字の「オー」です)。
具体的には

置場名[階数].indexOf(検索文字置場名,検索開始桁数);

のように書きます。(文字の先頭からの場合は「検索開始桁数=0」です。)
結果は
置場にある文字データが指定した文字を含んでいれば、その文字がある先頭の桁位置(1文字目だと「0」)の数に、含んでいないときは「−1」になります。

kaiin[0]="宮本幸雄";
kensaku_dt="宮";
iti=kaiin[0].indexOf(kensaku_dt,0);

の場合は
iti置場に「0」が入ります。

kensaku_dt="幸";

だった場合は
iti置場は「2」になります。

2、照合の繰り返し

会員の名前に指定した文字を含んでいるか?
を全会員について調べるには
以前に習った「〜から〜まで」と組み合わせればできます。

for(i=0;i<=n;i++){ iti=kaiin[i].indexOf[i](kensaku_dt,0); }
のように

3、繰り返しからの抜け出し

そして、
iti置場の値が「−1」でない場合は、
そのときの階数「i」を覚えて、「〜から〜まで」の繰り返しを終了するようにする。
抜け出す命令は
break;

が用意されています。 これを、前に習った「もしも」と組み合わせて

if(iti != -1){ kaisu=i; break; }
のように書けば実現します。
一人も照合しない場合のことを考えて、その場合は「該当者なし」と表示させる部分を加えれば下記のソースのようになり、完成です。

4、体験しよう。

下の会員名の窓にあなたの名前を入れて体験してみよう。
会 員 名
階の さんの)
ホームページアドレスはです。
電 子メールアドレスはです。


それでは、実際に、次のソースをコピーして「メモ帳」に貼り付け、HTMLファイルとして保存した上で、そのファイルをダブルクリックして開いてみてください。
<html> <head> <title>javascript入門no14</title> <script language="javascript"    src="http://qpon-toyota.com/java/nyumon/kaiin.js"> </script> <script language="javascript"> <!-- //検索 function kensaku(){ kaisu=n+1; se_dt=document.kaiin_form.input_name.value; for(i=0;i<=n;i++){ iti=kaiin[i].indexOf(se_dt,0); if(iti !=-1){ saisu=i; break; } } if(kaisu<=n){ document.kaiin_form.out_url.value=url[kaisu]; document.kaiin_form.out_ml.value=ml[kaisu]; }else{ document.kaiin_form.out_url.value="該当者なし"; document.kaiin_form.out_ml.value="該当者なし"; } } //--> </script> </head> <body> <!--入出力窓--> <form name="kaiin_form"> 会員名<input type=text name="input_name" value="" size=16> <input type=button value="検索" onClick="kensaku()"><br> ホームページは<input type="text" name="out_url" value="" size=60><br> 電 子メールは<input type="text" name="out_ml" value="" size=60> </form> </body> </html>