最近写了个小工具方法,就是将两个 同地址但查询参数不同 Url合并为一个,这里记录一下~
function mergeUrl(_origUrl, _href) { var _pattern = /[^&\?]+?=[^&]+/gi; //匹配新href,获取查询键值 var _matchs = _href.match(_pattern); var _newKeyValues = []; $(_matchs).each(function (idx, obj) { _newKeyValues.push(obj); }); //匹配原url,获取查询键值 _matchs = _origUrl.match(_pattern); $(_matchs).each(function (idx, obj) { var isExist = false; //排重 $(_newKeyValues).each(function (idx2, obj2) { var _k = obj2.split("=")[0]; if (obj.indexOf(_k) != -1) { isExist = true; return; } }); if (!isExist) _newKeyValues.push(obj); }); var _baseUrl = _origUrl.split("?")[0] , _qStr = "" , _newUrl = _origUrl; $(_newKeyValues).each(function (idx, obj) { _qStr += "&" + obj; }); if (_qStr !== "") { _newUrl = _baseUrl + "?" + _qStr.substr(1); } return _newUrl; }