HOME>WEBプログラム覚書>JavaScript正規表現1

JavaScript正規表現1

JavaScriptで正規表現による検索を行うには、RegExpオブジェクトとmatchメソッドを利用する。

書式

Javascript

  1. str = "検索したい文字列";
  2. regObj = new RegExp(正規表現, type);
  3. result = str.match(regObj);
  4.  

resultにはマッチした文字列が入る

RegExpのtypeは省略可。

g
グローバルマッチ 2番目3番目にマッチする部分も検索する。
i
大文字小文字そんなの関係ねぇ
m
複数行に対して検索(IE5.5/NN6/FF)

正規表現

. 改行以外の任意の一字。連続させれば連続させた数だけゲッツ
.* 任意の文字列。ワイルドカードみたいなもんか?
^ 行の先頭
$ 行の最後
\ エスケープ。特殊文字は\でエスケープしてやる

サンプル

Javascript

  1. <script language="javascript" type="text/javascript">
  2.  
  3. function reg(type){
  4.  
  5.     var str = "出来るよ??僕にも!javascriptを使って適当な文章の中から任意の一文字(2文字でも3文字でも)を抽出して表示することが出来るよ!?";
  6.  
  7.     if(type == "type1"){
  8.         regObj = RegExp(".文字", "g");
  9.         alt = str.match(regObj);
  10.         for(i=0; i<alt.length; i++){
  11.             alert(alt[i]);
  12.         }
  13.     }
  14.  
  15.     if(type == "type2"){
  16.         regObj = RegExp("javascript.*表示");
  17.         alt = str.match(regObj);
  18.         alert(alt);
  19.     }
  20.  
  21.     if(type == "type3"){
  22.         regObj = RegExp("^出来るよ..");
  23.         alt = str.match(regObj);
  24.         alert(alt);
  25.     }
  26.  
  27.     if(type == "type4"){
  28.         regObj = RegExp("出来るよ..$");
  29.         alt = str.match(regObj);
  30.         alert(alt);
  31.     }
  32.  
  33.     if(type == "type5"){
  34.         regObj = RegExp(".\!.");
  35.         alt = str.match(regObj);
  36.         alert(alt);
  37.     }
  38.  
  39.     if(type == "type6"){
  40.         regObj = RegExp(".\?.");
  41.         alt = str.match(regObj);
  42.         alert(alt);
  43.     }
  44. }
  45.  
  46. </script>
  47.  

HTML

  1. <ul>
  2. <li><a href="javascript:;" onclick="reg('type1')">任意の一字チェック</a></li>
  3. <li><a href="javascript:;" onclick="reg('type2')">任意の文字列チェック</a></li>
  4. <li><a href="javascript:;" onclick="reg('type3')">行の最後チェック</a></li>
  5. <li><a href="javascript:;" onclick="reg('type4')">行の最後チェック</a></li>
  6. <li><a href="javascript:;" onclick="reg('type5')">エスケープチェック</a>
  7.     <ul>
  8.     <li><a href="javascript:;" onclick="reg('type6')">重なってるとなんか変</a></li>
  9.     </ul>
  10. </li>
  11. </ul>
  12.  

実行結果

原因不明なエラー

Javascript

  1. if(type == "type1"){
  2.     regObj = RegExp(".文字", "g");
  3.     alt = str.match(regObj);
  4.     for(i=0; i<alt.length; i++){
  5.         newStr += alt[i];
  6.     }
  7.     alert(newStr);
  8. }
  9.  

なんでこれがダメなのかさっぱりわからない。調査が必要そうだ。とか言ってどっかスペルミスだったり(爆

投稿日 2007年9月25日 19:56
カテゴリ JavaScript
タグ エラーコード | 正規表現
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1095

コメント

コメントする
Name
Email Address
URL