プログラマとプロマネのあいだ

プログラマもやるし、プロマネもやるし、たまに似非アーキとか営業っぽいこともやる

JScriptで動作するテンプレートエンジン

ソース

JScriptでは、正規表現のところに\がないと動かなかったというオチ。

function RND(tmpl, ns) {
  var fn = function(w, g) {
    g = g.split("|");
    var cnt = ns[g[0]];
    for(var i=1; i<g.length; i++) {
      cnt = eval(g[i])(cnt);
    }
    return cnt || w;
  };
  return tmpl.replace(/%\(([A-Za-z0-9_|.]+)\)/g, fn);
}

var tmpl = '<a href="%(link)">%(value|parseInt)</a>';
var ns = {'link': 'http://amix.dk', 'value': 5.5};
WScript.Echo(RND(tmpl, ns));

出力結果

---------------------------
Windows Script Host
---------------------------
<a href="http://amix.dk">5</a>
---------------------------
OK   
---------------------------