http://phpspot.org/blog/archives/2006/08/javascriptrnd.html
http://la.ma.la/blog/diary_200512291411.htm
function Template(src) { var tmpl = new String(src); tmpl.merge = function(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); }; return tmpl; } var tmpl = new Template('<a href="%(link)">%(value)</a>'); var ns = {'link': 'http://amix.dk', 'value': 5.5}; print( tmpl.merge(ns) );
↑こうしたいと思うのは頭がじゃばじゃばしてるせいかも。
Stringを拡張したほうがいいかな…