php、js、java的正则替换文本方式制作模板内容输出

12 篇文章 0 订阅
1 篇文章 0 订阅
在制作模板内容输出时,很经常会使用<%=%>之类的占位符,用正则的方式很方便替换这个内容, 工作中只接触到java、php、js,三种语言的 简单的实现方式:
java版
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TestRex {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<String, String>();
        map.put("name", "penngo");
        map.put("date", "2013-01-17");
        Pattern p = Pattern.compile("<%=(\\w+?)%>");
        String str = "<%=date%>, Hello <%=name%>";
        Matcher m = p.matcher(str);
        StringBuffer sb = new StringBuffer();
        boolean result = m.find();
        while (result) {
            String key = m.group(1);
            String value = map.get(key);
            m.appendReplacement(sb, value);
            result = m.find();
        }
        m.appendTail(sb);
        System.out.println(sb.toString());
    }
}


php版

<?php
    $data = array('name'=>'penngo', 'date'=>'2013-01-17');
    function replaceStr($key, $data){
        return $data[$key];
    }
    $str = '<%=date%>, Hello <%=name%>';
    $str = preg_replace("/<%=(\w+?)%>/ise", "replaceStr('\\1', \$data)", $str);
    echo $str;
?>


js版

 <script type="text/javascript">
    var date = {'name':'penngo', 'date':'2013-01-17'};
    var str = '<%=date%>, Hello <%=name%>';
    str = str.replace(/<%=(\w+?)%>/g, function($0, $1){
        var value = date[$1];
        return value;
    });
    document.write(str);
    </script>



运行结果输出:
2013-01-17, Hello penngo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值