码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-12-17 19:15:24      阅读:158      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!