Javascript中经典自定义函数

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;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容