goo blog サービス終了のお知らせ 

JavaScriptの正規表現で変数?

2006年07月15日 | CGI/PHP
昨日の続きで、今日は技術的なお話。
JavaScriptの正規表現で変数使う時ってどうするんだろね・・・。
今回は、入力フォームの変数としてimage1,image2・・・にマッチする物を見つけたかったのね。それだけなら、

aaa.match(/^image([0-9]+)/)

でいいんだけど、画像(image)と拡大画像(limage)を共通処理にしたかったんで、この正規表現の「image」の部分を可変(変数)にしてマッチさせたいってわけ。Perlだったら、

$aaa =~ /^$image[0-9]+/

と変数「$image」とでもしてぶち込んじゃえばいいんで、非常にわかりやすいし便利。JavaScriptで同じことしようったって、変数に「$」がついてて区別出来るわけではないので、入れようがない。

調べてみたら、正規表現オブジェクトというのがあるらしい・・・

re = new RegExp("^" + vname + "[0-9]+$");

なんて作るんだそうな。「vname」は変数ね。これに「image」だの「limage」だの入れて渡してやればいい。んで、

aaa..match(re)

でマッチング。結果はこれでうまく行ってますが、こうするしかないんかな・・・まぁこうするものならそれで全然構わないんだけど。Perlの場合の単純さに比べるとなんかねぇって思うだけで・・・。「/・・・/」なんてPerl風の書き方してるだけに余計にね。

最新の画像もっと見る

1 コメント(10/1 コメント投稿終了予定)

コメント日が  古い順  |   新しい順
Unknown (とおる)
2010-03-16 20:30:21
Perlの自由さと違ってJavascriptは堅いですからね。
一見便利なように見えて、規模が大きくなると使いにくくなる言語も多いですので堅いのも理由があるのですよ。
返信する

コメントを投稿

サービス終了に伴い、10月1日にコメント投稿機能を終了させていただく予定です。