【前端】提取URL中的各个GET参数

 1 /****************************
 2  * 有这样一个URL:http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e,
 3  * 请写一段JS程序提取URL中的各个GET参数(参数名和参数个数不确定),
 4  * 将其按key-value形式返回到一个json结构中,
 5  * 如{a:'1', b:'2', c:'', d:'xxx', e:undefined}。
 6  ****************************/
 7 
 8 function foo(url) {
 9     var json = {};
10     var regExp = /[\?\&](\w+)(=?)(\w*)/g;
11 
12     do {
13         arr = regExp.exec(url);
14         // console.log(arr); // arr = [完整的字符串, key, 等号或'', value或'']
15 
16         if (arr) {
17             var key = arr[1];
18             var value = arr[3];
19             // arr[2] === ''时, value = undefined
20             if (!arr[2])
21                 value = undefined;
22 
23             json[key] = value;
24         }
25     } while (arr);
26 
27     return json;
28 }
29 
30 // ======test======
31 ! function () {
32     var url = 'http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e';
33     console.log(foo(url));
34 } ();

 

posted @ 2016-02-20 17:16  赵康  阅读(1300)  评论(0编辑  收藏  举报