function GET(){ var url = window.document.location.href.toString(); var u = url.split("?"); if(typeof(u[1]) == "string"){ u = u[1].split("&"); var get = {}; for(var i in u){ var j = u[i].split("="); get[j[0]] = j[1]; } return get; }else { return {}; } };
var getParam = GET(); //通过变量保存参数对象 //getParam:{ name:"webkong", age:"23", sex:"男" }
和第一种逻辑过程一样,只是结果是对象本身
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
var $_GET = (function(){ var url = window.document.location.href.toString(); var u = url.split("?"); if(typeof(u[1]) == "string"){ u = u[1].split("&"); var get = {}; for(var i in u){ var j = u[i].split("="); get[j[0]] = j[1]; } return get; } else { return {}; } })();
// 使用时, 可以直接 $_GET['name'], 就直接获得name值
第二种,通过正则来匹配
1 2 3 4 5 6 7 8
//通过传递参数来获取url上的某一个参数值 function GET(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象 var r = window.location.search.substr(1).match(reg); //匹配目标参数 if (r!=null) return unescape(r[2]); return null; //返回参数值 } //调用 GET('name');
或者扩展成 jQuery
1 2 3 4 5 6 7 8 9
(function($){ $.getUrlParam= function(name){ var reg = new RegExp("(^|&)"+name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r!=null) return unescape(r[2]); return null; } })(jQuery);