Javascript中经典自定义函数
日期格式化函数
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;
}
模板引擎
<!-- 模版代码 -->
<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('');";
var fn=new Function("obj",result);
return fn(data);
}
</script>
<!-- 使用方法 -->
<script type="text/javascript">
var data ={users:[{url:2,name:'ray'},{url:1,name:'ray0324'}]};
var str = template('tpl',data);
document.getElementById('wrap').innerHTML =str;
</script>