2006/11/19

[技術系]   JavaScriptのreplaceで正規表現による後方参照

at 03:01JST
 
a. ○できる
 txt.replace( /hoge(.*)huga/, "huga$1hoge");

b. ×できない
 txt.replace( /hoge(.*)huga/, "huga" + $1 + "hoge");

c. ×できない
 txt.replace( /hoge(.*)huga/, "huga" + RegExp.$1 + "hoge");
 ※いったんmatchさせたあとでないと使えないらしい

bができない理由がわからない…_| ̄|O(そんなに難しいことか?)

で、代わりにこうする。

d. ○できる
 txt.replace(
   /hoge(.*)huga/,
   function (whole,s1) {
    return( "huga" + s1 + "hoge");
   }
 );

なげー。だいたいこの、関数の引数決めうちってのがキライなのだが…まぁ、Perlでもsortとかそうだから文句言えないか。

意外に常識らしい。なんでも無名関数なJavaScriptであった。
関連しそうな過去記事:
さらに過去の記事
2009/04 (1)   2008/12 (3)   2008/11 (9)   2008/10 (10)   2008/09 (20)   2008/08 (2)   2008/07 (23)   2008/06 (16)   2008/05 (22)   2008/04 (11)   2008/03 (21)   2008/02 (20)   2008/01 (21)   2007/12 (32)   2007/11 (37)   2007/10 (46)   2007/09 (63)   2007/08 (33)   2007/07 (41)   2007/06 (81)   2007/05 (173)   2007/04 (168)   2007/03 (113)   2007/02 (123)   2007/01 (92)   2006/12 (111)   2006/11 (185)   2006/10 (20)  
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。