No Programming, No Life

プログラミング関連の話題や雑記

テンプレートシステム

テンプレートシステムのための関数

function fill(tmpl, ns) {
	/*
	 * ${xxx} 形式にマッチ
	 * xxxには「a〜z A〜Z 0〜9 _ | .」が指定可能
	 */
	return tmpl.replace(/\$\{([A-Za-z0-9_|.]*)\}/g, function(match, $1) {
		return ns[$1] || "";
	});
}

/* テンプレート */
var template = "私の名前は${name}です。";

を用意しておいて、組み込み変数をJSON形式で入力する。

document.write(fill(template, {"name":"ふもふも"}));

すると、以下のようになる。

私の名前はふもふもです