Home > Archives > 2008年03月 > JavaScriptで文字列内変数展開

JavaScriptで文字列内変数展開

JavaScriptで文字列内変数展開

String.prototype.fill = function(hash){
    return this.replace(/\${([A-Za-z_]\w*)}/g, function($0, $1){
        return (typeof(hash[$1]) != "undefined") ? hash[$1] : $0;
    });
};
var uri = "http://www.google.co.jp/";
'<a href="${href}"><img src="${src}" alt="${alt}" title="${alt}" /></a>'.fill({
    href: "http://b.hatena.ne.jp/entry/" + uri,
    src: "http://b.hatena.ne.jp/entry/image/" + uri,
    alt: "「" + uri + "」のはてなブックマーク数"
});
// <a href="http://b.hatena.ne.jp/entry/http://www.google.co.jp/"><img src="http://b.hatena.ne.jp/entry/image/http://www.google.co.jp/" alt="「http://www.google.co.jp/」のはてなブックマーク数" title="「http://www.google.co.jp/」のはてなブックマーク数" /></a>

使ってみたら結構便利だったのでメモ。

\$#にすればRubyっぽくなります。


これとXMLHttpRequestを合わせればテンプレートシステムが作れそう、かも。

追記

激しく既出だった。

最速インターフェース研究会 :: Safariでreplace callback のエミュレーション

404 Blog Not Found:javascript - HereDocよりInterpolation

404 Blog Not Found:javascript - Interpolatorで変数展開

テンプレート関連 - 実用

Comment: 0

Attention
コメントの受け付けは終了しました。

Trackback: 0

Attention
トラックバックの受け付けは終了しました。

Home > Archives > 2008年03月 > JavaScriptで文字列内変数展開

Feeds
Counter
  • Counter

    since 2008.01.11

Page Top