Javascript中经典自定义函数

2016-06-30  本文已影响36人  ray0324

1.日期格式化函数

代码:

Date.prototype.Format = function(fmt){
  var o = {
    "m+" : this.getMonth()+1,  //月份
    "d+" : this.getDate(),     //日
    "h+" : this.getHours(),    //小时
    "i+" : this.getMinutes(),  //分
    "s+" : this.getSeconds(),  //秒
  };
  if(/(y+)/.test(fmt)){
      fmt = fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
  }
  for(var k in o){
      if(new RegExp("("+ k +")").test(fmt)){
          fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
      }
  }
  return fmt;
}

使用方式:

new Date().Format('yyyy-mm-dd')
new Date().Format('yyyy/mm/dd')

2.模板引擎

代码

<script type="text/html" id="tpl">
    <ul>
       <% for ( var i = 0; i < users.length; i++ ) { %>
          <li>
                 <a href="<%=users[i].url%>">
                 <%=users[i].name%>
              </a>
          </li>
      <% } %>
      </ul>
</script>

<script type="text/javascript">

function template(id,obj){
    var html=document.getElementById(id).innerHTML;
    var result="var p=[]; with(obj){p.push('"
        +html.replace(/[\r\n\t]/g,"")
            .replace(/<%=(.*?)%>/g,"');p.push($1);p.push('")
            .replace(/<%/g,"');")
            .replace(/%>/g,"p.push('")
        +" ');}return p.join('');";
    console.log(result);
    var fn=new Function("obj",result);
    return fn(data);
}

var data ={users:[{url:2,name:'ray'},{url:1,name:'ray0324'}]};
var str = template('tpl',data);
document.getElementById('wrap').innerHTML =str;

上一篇 下一篇

猜你喜欢

热点阅读