📝算法003:获取URL参数

198 阅读1分钟
/* 
 *  @description 拆分法,获取多个参数的值,并逐个装进对象中
 *  @param {string} name
 *  @return {string} url中多个参数的键值对的对象
 */
function getUrlParams() {
    var url = location.search; //获取url中"?"符后的字串
    var theRequest = new Object();
    if (url.indexOf("?") != -1) {
        var str = url.substr(1);
        strs = str.split("&");
        for (var i = 0; i < strs.length; i++) {
            theRequest[strs[i].split("=")[0]] = strs[i].split("=")[1]
        }
    }
    return theRequest
}

console.log(getUrlParams()); // {ie: "UTF-8", wd: "indexOf"}
/* 
 *  @description 正则匹配法,匹配单个参数
 *  @param {string} name
 *  @return {string} url中参数的值
 */
function getQueryString(name) {
    var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
    var r = window.location.search.substr(1).match(reg);
    if (r != null) {
        return unescape(r[2]);
    }
    return null;
}
console.log(getQueryString('ie')); // UTF-8