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 } ();