zoukankan      html  css  js  c++  java
  • 简易模板字符串替换

    function template(wrapParent,data){
      var wrapParent = getObj(wrapParent);
      var tplhtml = getAttr(wrapParent, "data-html");
      var tplstr = getObj(tplhtml).innerHTML;

      var re = /{{s*(w+)s*}}/g;


      if(data instanceof Array){
        var strtemp = '';
        for(var i=0; i<data.length; i++){
          strtemp += dataHtmlStr(data[i]);
        }
        wrapParent.innerHTML = strtemp;
      }else if({}.toString.call(data).split(" ")[1].toLowerCase().slice(0,-1)== 'object'){
        wrapParent.innerHTML = dataHtmlStr(data);
      }else{
        throw '数据格式不正确!';
      }

    function dataHtmlStr(data){
      return (function(){
        return tplstr.replace(re,function(matchs,key){
          return data[key];
        })
      })();
    }

      function getObj(id){
        return document.getElementById(id);
      }

       function getAttr(obj,attr){
         return obj.getAttribute(attr);
       }
    }

    调用:

    var data = {
      name : 'zhl',
      age : 30,
      showbool : false
    };

    template('context',data);

  • 相关阅读:
    【Linux】没有网的情况下如何安装GCC
    【PL/SQL】PLSQL Developer注册码
    【JS】字符串操作
    【java】svn显示&#215;
    线段树
    病毒感染者
    并查集
    最小的N个和(堆)
    priority_queue的用法
    打印杨辉三角
  • 原文地址:https://www.cnblogs.com/vsmart/p/6292928.html
Copyright © 2011-2022 走看看