2006年8月15日

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 オブジェクトが渡せる関数とかあるんじゃろか…。

最速参考

photo
JavaScript
デイビッド フラナガン David Flanagan 村上 列
オライリー・ジャパン 2000-12
売り上げランキング : 27874
おすすめ平均 star
starJavaScriptを言語として扱うには最良の本。
star基礎から学ぶには良い本、ただ入門書ではないので注意
starJavaScriptのバイブル
starJavaScriptを基本からマスター
star良書だ。

JavaScript & DHTMLクックブック―Webエキスパート必携テクニック集 入門 Ajax CSSクックブック―Webデザインのための活用テクニック集 HTML & XHTML 第5版 JavaScriptビジュアル・リファレンス

曲名リスト

by G-Tools , 2006/08/15

Comments

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

トラックバック

トラックバックURL: