6.検索・置換え

6−1.文字検索(indexOf)
<A NAME="no1"></A> 50%
JavaScript 記事
<HTML><HEAE>
<TITLE>文字検索(indexOf)</TITLE>
</HEAE>
<BODY>
<SCRIPT Language="JavaScript">
<!--
mozi="ABCDEFGHIJKLM";
shu1= mozi.indexOf("C",0);
alert("shu1→ "+ shu1);
shu2= mozi.indexOf("c",0);
alert("shu2→ "+ shu2);
shu3= mozi.lastIndexOf("C",13);
alert("shu3→ "+ shu3);
//-->
</SCRIPT>
</BODY>
</HTML>
【注意】 スクリプロの記述で大文字/小文字を区別する
例:indexOf → indexOfはOK、indexofはエラー
 
・indexOf は左から検索(本例の結果0からカウントで:2)
・lastIndexOf は右から検索(本例の結果:2)
・一致文字がない場合は-1を返す
 
6-1実行


6−2.正規表示による文字検索(match)
JavaScript 記事
<HTML><HEAE>
<TITLE>文字検索(match)</TITLE>
</HEAE>
<BODY>
<SCRIPT Language="JavaScript">
<!--
mozi="ABCDEFGHIJKLM";
sch1= mozi.match(/DEF/i);
alert("sch1→ " + sch1 );
sch2= mozi.match(/def/i);
alert("sch2→ " +sch2);
sch3= mozi.match(/aaa/i);
alert("sch3→ " +sch3);
//-->
</SCRIPT>
</BODY>
</HTML>
 
sch1→DEF (DEF文字を検索し抽出)
sch2→DEF (def文字を検索し抽出)
sch3→null (aaa文字を検索し抽出、なしの場合nullを返す)
 
・マッチ方法
   i  → 大文字小文字区別しない
   g  → グローバルマッチ
 
6-2実行
 


6−3.正規表示による文字検索(search)
JavaScript 記事
<HTML><HEAE>
<TITLE>文字検索</TITLE>
</HEAE>
<BODY>
<SCRIPT Language="JavaScript">
<!--
mozi="ABCDEFGHIJKLM";
sch1= mozi.search(/DEF/i);
alert("sch1→ " + sch1 );
sch2= mozi.search(/def/i);
alert("sch2→ " + sch2 );
sch3= mozi.search(/ccc/i);
alert("sch3→ " + sch3 );
//-->
</SCRIPT>
</BODY>
</HTML>
 
sch1→3 (DEF文字を検索し文字位置を返す)
sch2→3 (def文字を検索し文字位置を返す)
sch3→-1 (ccc文字を検索、一致がない場合は-1を返す)
 
※ 返却の文字位置は0からのカウント
 
6-3実行
 


6−4.パターンマッチ使用の文字検索
JavaScript 記事
<HTML><HEAE>
<TITLE>文字置換え</TITLE>
</HEAE>
<BODY>
<SCRIPT Language="JavaScript">
<!--
mozi="ABCDEFGHIJKLM";
mozi2= new RegExp("DEF","i")
sch1= mozi.search(mozi2);
alert("sch1→ "+ sch1);
 
mozi2= new RegExp("def","i")
sch2= mozi.match(mozi2);
alert("sch2→ "+sch2);
 
mozi2= new RegExp("ccc","i")
sch3= mozi.search(mozi2);
alert("sch3→ "+sch3);
//-->
</SCRIPT>
</BODY>
</HTML>
 
フォームから入力された文字を変数に入れ、その変数
内のデータを正規表現文字として検索する場合は、
RegExpで正規表現文字に変更しないと検索出来ません。
 
sch1→3 (DEF文字を検索し文字位置を返す)
 
sch2→DEF  (DEF文字を検索し抽出)
 
sch3→-1(ccc文字を検索、一致がない場合-1)
 
 
 
6-4実行
 


6−5.文字置換え
JavaScript 記事
<HTML><HEAE>
<TITLE>文字置換え</TITLE>
</HEAE>
<BODY>
<SCRIPT Language="JavaScript">
<!--
mozi="ABCDEFGHIJKLM";
sch1= mozi.replace(/DEF/i,"123");
alert(sch1);
//-->
</SCRIPT>
</BODY>
</HTML>
文字を大文字小文字を無視して検索し置換える
(結果は下図参照)
 
6-5実行
 


6−6.文字置換え(カンマの削除)
JavaScript 記事
<HTML><HEAE>
<TITLE>カンマの削除</TITLE>
</HEAE>
<BODY>
<SCRIPT Language="JavaScript">
<!--
mozi="123,456";
alert(mozi);
sa=String(mozi);
saa=sa.replace(/,/,'');
dats=eval(saa);
alert(dats);
//-->
</SCRIPT>
</BODY>
</HTML>
ソースは前項と殆ど同じですが、数字を比較するソフト
を作っている時、取り込んだデータがカンマ付き数字で
JavaScriptでは小数点と同じ扱いになっていたので
比較が出来なかったので削除した例。
 
 
6-6実行
 
 
 
 
 
 
 
 
 

6−7.文字置換え(プログレスバー)
JavaScript 記事
<HTML><HEAE>
<TITLE>文字の置換え(プログレスバー)</TITLE>
<SCRIPT Language="JavaScript">
<!--
var cnt=0
var msg="実行中---□□□□□□□□□□";
function scrol() {
setTimeout("scrol()",200);
msg=msg.replace(/□/,"■")
document.textForm.box.value=msg;
cnt +=1
if (cnt >9 ){
msg="実行中---□□□□□□□□□□";
cnt =0
}}
//--></SCRIPT>
</HEAD>
<BODY onLoad="scrol()">
<FORM NAME="textForm">
<INPUT NAME="box" TYPE="text" SIZE=40>
</FORM>
</BODY>
</HTML>
replaceで文字を置き換える場合、文字列の中で左から
検索して最初に合致した文字を置換えます。
したがって、左から1個ずつ変えるのでプログレスバーと
して応用することができます。
 
 
6-7実行
 




【HOME】 【基礎編へ戻る】