jQuery 解析 url 参数代码如下:
(function($) { var re = /([^&=]+)=?([^&]*)/g, decodeRE = /\+/g, decode = function (str) { return decodeURIComponent(str.replace(decodeRE, " ")); }; $.parseParams = function(query) { var params = {}, e; while (e = re.exec(query)) { params[decode(e[1])] = decode(e[2]); } return params; }; })(jQuery);
使用方法:
// 模拟的 url 地址 var url = 'https://www.google.com/search?dcr=0&ei=5C&q=param'; // 解析问号后的 url 参数 var param = $.parseParams(url.split('?')[1] || ''); // 输出:{dcr: "0", ei: "5C", q: "param"} console.log(param);
上面代码片段直接将解析 url 参数的方法封装成 jQuery 的一个方法,还可以直接将上面方法封装成一个纯 JS 方法,返回一个对象。如下:
var paramObj = (function parseParams() { var re = /([^&=]+)=?([^&]*)/g, decodeRE = /\+/g, decode = function (str) { return decodeURIComponent(str.replace(decodeRE, " ")); }; var params = {}, e; while (e = re.exec(window.location.href.split('?')[1] || '')) { params[decode(e[1])] = decode(e[2]); } return params; })();