现实JS模板,可设置默认值
在写封装一些URL请求时想到用模板的方式会很灵活,所以在网上看了下,把replace的第二个参数写成函数时还真有意思,省了写循环的事,呵呵!也实现了我认为必需得有的特性:设置默认值。
[javascript]
var urlList = {
type: {
a:'http://nootn.com/blog/?id={key}&name={name:asins}¬n={notn:js}',
//这里还有很多这样的URL
},
url: function(T, O){
var reg = new RegExp('\{([^}]+?)\}', 'g');
var url = this.type[T].replace(reg, function(v,key){
var arr = key.split(':');
return encodeURIComponent( (O[arr[0]] != undefined ? O[arr[0]] : arr[1])||'' );
});
return url;
}
//这里还有其它函数
}
使用时就很方便了,
urlList.url('a', {key:'keyName', name:'nootn'});
//这样生成的URL就是http://nootn.com/blog/?id=keyName&name=nootn¬n=js