JavaScript正規表現1

| 2007年09月25日 19:56

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

書式


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

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

RegExpのtypeは省略可。

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

正規表現

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

サンプル


<script language="javascript" type="text/javascript">

function reg(type){

    var str = "出来るよ??僕にも!javascriptを使って適当な文章の中から任意の一文字(2文字でも3文字でも)を抽出して表示することが出来るよ!?";
    
    if(type == "type1"){
        regObj = RegExp(".文字", "g");
        alt = str.match(regObj);
        for(i=0; i<alt.length; i++){
            alert(alt[i]);
        }
    }

    if(type == "type2"){
        regObj = RegExp("javascript.*表示");
        alt = str.match(regObj);
        alert(alt);
    }
    
    if(type == "type3"){
        regObj = RegExp("^出来るよ..");
        alt = str.match(regObj);
        alert(alt);
    }
    
    if(type == "type4"){
        regObj = RegExp("出来るよ..$");
        alt = str.match(regObj);
        alert(alt);
    }

    if(type == "type5"){
        regObj = RegExp(".\!.");
        alt = str.match(regObj);
        alert(alt);
    }
    
    if(type == "type6"){
        regObj = RegExp(".\?.");
        alt = str.match(regObj);
        alert(alt);
    }
}

</script>

<ul>
<li><a href="javascript:;" onclick="reg('type1')">任意の一字チェック</a></li>
<li><a href="javascript:;" onclick="reg('type2')">任意の文字列チェック</a></li>
<li><a href="javascript:;" onclick="reg('type3')">行の最後チェック</a></li>
<li><a href="javascript:;" onclick="reg('type4')">行の最後チェック</a></li>
<li><a href="javascript:;" onclick="reg('type5')">エスケープチェック</a>
    <ul>
    <li><a href="javascript:;" onclick="reg('type6')">重なってるとなんか変</a></li>
    </ul>
</li>
</ul>

実行結果

原因不明なエラー


if(type == "type1"){
    regObj = RegExp(".文字", "g");
    alt = str.match(regObj);
    for(i=0; i<alt.length; i++){
        newStr += alt[i];
    }
    alert(newStr);
}

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

基礎 Ajax + JavaScript

著者 : 佐藤 和人 / 金額 : ¥ 2,940

kantenna.com 最新更新ページ

JavaScript正規表現1タグ:

トラックバック

  • http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/381
コメント (0)
コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)





この情報を登録しますか?