テンプレートのコンテンツを出力する場合、<%=%> などのプレースホルダーがよく使用されます。私の仕事では、このコンテンツを通常のメソッドに置き換えるのが非常に便利です。言語 簡単な実装:
Javaバージョン
java.util.HashMapをインポート;
java.util.Mapをインポート;
java.util.regex.Matcherをインポート;
java.util.regex.Patternをインポート;
パブリック クラス TestRex {
public static void main(String[] args) {
Map マップ = new HashMap();
map.put("name", "penngo");
map.put("日付", "2013-01-17");
パターン p = Pattern.compile("");
文字列 str = "<%=date%>, こんにちは <%=name%>";
マッチャー m = p.matcher(str);
StringBuffer sb = new StringBuffer();
ブール値 = m.find();
while (結果) {
文字列キー = m.group(1);
文字列値 = map.get(key);
m.appendReplacement(sb, value);
result = m.find();
}
m.appendTail(sb);
System.out.println(sb.toString());
}
}
phpバージョン
$data = array('name'=>'penngo', 'date'=>'2013-01-17');
関数 replaceStr($key, $data){
return $data[$key];
}
$str = '<%=date%>, こんにちは <%=name%>';
$str = preg_replace("//ise", "replaceStr('\1', $data)", $str);
$str;
をエコー
?>
jsバージョン
var date = {'name':'penngo', 'date':'2013-01-17'};
var str = '<%=date%>, こんにちは <%=name%>';
str = str.replace(//g, function($0, $1){
変数値 = 日付[$1];
戻り値;
});www.2cto.com
document.write(str);
ボディ>