模板解析DEMO

let render = function (str, data) {  let tpl = str.replace(/<%=([\s\S]+?)%>/g,function (match, code) {      return "‘ +obj."+code+"+ ‘";  }) ;

tpl = "var tpl=‘"+tpl+"‘\n return tpl;";  let complied = new Function(‘obj‘,tpl);  return complied(data);};

let tpl = "Hello <%=username%>.";console.log(render(tpl,{username:"dana"}));

//上面这种做法每次都要编译执行。可以简化,使得编译一次,多次执行。//具体做法就是生成一个函数,然后返回,吧参数当做参数传递

let compile = function (str) {    let tpl = str.replace(/<%=([\s\S]+?)%>/g,function (match, code) {        return "‘ +obj."+code+"+‘";    });

tpl = "var tpl = ‘"+tpl+"‘\nreturn tpl";    return new Function(‘obj,escape‘,tpl);};let render1  = function (compile, data) {    return compile(data);};

let res = render1(compile,"Hello <%=username%>.");console.log(res({username:"dana1"}));
时间: 2024-10-05 05:58:33

模板解析DEMO的相关文章

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

//一种简单快速的模板解析方法,活用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.

OPENSTACK在RHEL7安装;admin创建虚拟机模板供demo使用

首先RHEL7安装,导入镜像,选择第一个安装7.0,接着出现下面的界面,我这安装截图来自虚拟机,真正做实验是在物理机,一般需要内存5个G 选择英文 时间选择上海,software selection选择Server UI(加上图形化界面),设置installation destination最后点击begin installation 重新配置分区 点done,一步步继续,下面截图,来自别人提供,我当时忘记截图了 左边添加root密码,右边创建用户 把勾选的enable取消掉 不注册 OK,等待

[转载]ECMall模板解析语法与机制

ECMall模板解析语法与机制 2011-05-22 在ECMall模板中,用"{"开头,以"}"结尾就构成一个标签单元,"{"紧接着的单词就是标签名.在标签单元中单词前含"$"(美元符)的为变量名. 资源引用 res标签 功能:返回当前模板当前风格目录的url路径 实例:{res file=css/ecmall.css}这个标签在模板编译后将变成http://商城域名/themes/default/styles/defaul

PHP模板解析类实例

作者:mckee 这篇文章主要介绍了PHP模板解析类,涉及php针对模板文件的解析与字符串处理的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下 1 <?php 2 class template { 3 private $vars = array(); 4 private $conf = ''; 5 private $tpl_name = 'index'; 6 //如果模板不存在 会查找当前 controller默认index模板 7 private $tpl_suffix = '.html

javascript编写自己的模板解析器

编写自己的模板解析器 因为最近在研究artTemplate,ejs,baaiduTemplate等模板,所以,一时兴起,自己也写了个简单的模板解析器. 一个最基本的模板解析器,需要有什么功能呢? 读取变量值 解析模板语句 按照这个思路,我们编写一个简单的解析器,需求如下: 读值: <%= 变量名 %> 语句支持: <% if( type == 1 ){ %> good! <%}%> 总体来说,就是如果模板如下: 我叫:<%= name %> <br/&

ECMALL模板解析机制.MVC架构分析及文件目录说明.二次开发指南手册(转)

ECMALL模板解析语法与机制 http://www.nowamagic.net/architecture/archt_TemplateSyntaxAndAnalysis.php ECMALL模块开发指南 http://wenku.baidu.com/view/785b8a1ea76e58fafab003a6.html ECMall 结构图 http://wenku.baidu.com/view/3e9d9921bcd126fff7050b10.html ECMall 数据库表结构 全面讲解 h

模板维护-模板解析

        关于模板的解析,主要是关于主模板的解析.         首先来说一下业务逻辑,首先点击树的节点,将树的code付给物资编码,然后通过物资编码去查询主模板(包括主模板ID和主模板信息)和子模板(不带{}的信息):         如果有{}形式的信息,我们把主模板ID和主模板信息付给String参数,传到前台.在前台,首先判断传过来的String参数是否为空,如果为空则说明没有主模板,否则加载子模板信息.         解析主模板: 第一步:         从上面的逻辑中获取

phpcms模板解析嵌套标签解析失败

PHPCMS的模板解析函数是/phpcms/libs/classes/template_cache.class.php这个类中的template_parse函数. 我把这个文件拿出来,然后在下面直接写上 $str = '{php echo 1} -- {$abc}';$template = new template_cache();echo $c = $template->template_parse($str); 这时输出的是 <?php defined('IN_PHPCMS') or ex

Python--命令行参数解析Demo

写没有操作界面的程序时,最讨厌的就是参数解析问题,尤其是很多参数那种,下面是一个小Demo,拿出来与各位分享: 1 # -*- coding:utf8 -*- 2 import os 3 import datetime 4 import sys 5 from optparse import OptionParser 6 7 8 def get_user_paras(): 9 try: 10 opt = OptionParser() 11 opt.add_option('--host_ip', 1