JavaScript の String.replace に無名関数・Function オブジェクトを渡せる、というのを今日知りました。もちろん世間じゃアタリマエ~、だった…。
var str = "hoge123foo456-";
var matches = new Array();
str = str.replace(
/([a-z]+)([0-9]+)/g,
function (total, alpha, num) {
matches.push(total);
alpha = alpha.toUpperCase();
num = eval(num) * 3;
return alpha + num;
}
);
alert(matches.join("\n") + "\n" + str);
結果。
hoge123 foo456 HOGE369FOO1368-
第1引数がマッチした文字全体というのが Perl の s///e とは違うところ。へ~。他にも無名関数・Function オブジェクトが渡せる関数とかあるんじゃろか…。
最速参考

- JavaScript
- デイビッド フラナガン David Flanagan 村上 列
- オライリー・ジャパン 2000-12
- 売り上げランキング : 27874
- おすすめ平均

JavaScriptを言語として扱うには最良の本。
基礎から学ぶには良い本、ただ入門書ではないので注意
JavaScriptのバイブル
JavaScriptを基本からマスター
良書だ。
- 曲名リスト
by G-Tools , 2006/08/15

Comments
Array.sort も比較関数として無名関数を使えますね。
http://www.tohoho-web.com/js/array.htm#sort
他にもあるのかな...。