首页 > 编程语言 > 详细

一种简单快速的模板解析方法,活用with javascript版

时间:2015-12-17 19:12:32      阅读:218      评论:0      收藏:0      [点我收藏+]
//一种简单快速的模板解析方法,活用with
var parseTpl = function( str, data ) {
    var tmpl = ‘var __p=[];‘ + ‘with(obj||{}){__p.push(\‘‘ +
            str.replace( /\\/g, ‘\\\\‘ )
                .replace( /‘/g, ‘\\\‘‘ )
                .replace( /<%=([\s\S]+?)%>/g, function( match, code ) {
                    return ‘\‘,‘ + code.replace( /\\‘/, ‘\‘‘ ) + ‘,\‘‘;
                } )
                .replace( /<%([\s\S]+?)%>/g, function( match, code ) {
                    return ‘\‘);‘ + code.replace( /\\‘/, ‘\‘‘ )
                        .replace( /[\r\n\t]/g, ‘ ‘ ) + ‘__p.push(\‘‘;
                } )
                .replace( /\r/g, ‘\\r‘ )
                .replace( /\n/g, ‘\\n‘ )
                .replace( /\t/g, ‘\\t‘ ) +
            ‘\‘);}return __p.join("");‘,

        func = new Function( ‘obj‘, tmpl );

    return data ? func( data ) : func;
};
//demo
var ong={
    name:"caoke",
    va:"va"
}
parseTpl("<%=va%><%for(var i=0;i<3;i++)%><%=i%>sfd<%=va%>",ong)

//var __p=[];with(obj||{}){__p.push(‘‘,va,‘‘);for(var i=0;i<3;i++)__p.push(‘‘,i,‘sfd‘,va,‘‘);}return __p.join("");

  

一种简单快速的模板解析方法,活用with javascript版

原文:http://www.cnblogs.com/caoke/p/5054950.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!