现实JS模板,可设置默认值

在写封装一些URL请求时想到用模板的方式会很灵活,所以在网上看了下,把replace的第二个参数写成函数时还真有意思,省了写循环的事,呵呵!也实现了我认为必需得有的特性:设置默认值

 1 var urlList = {
 2     type: {
 3         a:'http://nootn.com/blog/?id={key}&name={name:asins}&notn={notn:js}',
 4         //这里还有很多这样的URL
 5     },
 6     url: function(T, O){
 7         var reg = new RegExp('\{([^}]+?)\}', 'g');
 8         var url = this.type[T].replace(reg, function(v,key){
 9             var arr = key.split(':');
10             return encodeURIComponent( (O[arr[0]] != undefined ? O[arr[0]] : arr[1])||'' );
11         });
12         return url;
13     }
14     //这里还有其它函数
15 }

使用时就很方便了,http://www.sanhejobs.com

urlList.url('a', {key:'keyName', name:'nootn'});
//这样生成的URL就是http://nootn.com/blog/?id=keyName&name=nootn&notn=js

from http://nootn.com/blog/Develop/21/

原文地址:https://www.cnblogs.com/xingkoo/p/3133410.html