JavaScriptで文字列書式付き出力

JavaScriptには,書式付きで文字列を生成してくれる関数がない.CでいうsprintfやJavaでいうformatのようなもの.これがないせいで,HTMLのマークアップ文字列に値を埋め込むのがめんどくさいこと限りなし.

ということで,Stringクラスを拡張.

if (!String.prototype.escape) {
    String.prototype.escape = function (o) {
        return this.replace(/{([^{}]*)}/g,
            function (a, b) {
                var r = o[b];
                return typeof r === 'string' || typeof r === 'number' ? r : a;
            }
        );
    };
}

文字列中に{key}があれば,引数の連想配列{key:value}によって,valueに置換される.
また,{0}等の数値であるばあい,可変の引数の順番にそれに置き換わる.