js获取url中的参数

//获取url中的参数,用法:var p = getQuery('p');
function getQuery(keyValue) {
    var search = location.search.slice(1);
    var arr = search.split("&");
    for (var i = 0; i < arr.length; i++) {
        var ar = arr[i].split("=");
        if (ar[0] == keyValue) {
            if (unescape(ar[1]) == 'undefined') {
                return "";
            } else {
                return unescape(ar[1]);
            }
        }
    }
    return "";
}

//最近发现上面这种取法有问题,如果要取的参数的值中有 = ,那
arr[i].split("=") 这样拆分就不对。应该先寻找 = 第一次出现的索引,然后按照索引去拆分。
//不想改了,因为我发现了一种更好的方法,用正则表达式去匹配:
function getQueryString(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    var r = decodeURI(window.location.search).substr(1).match(reg);
    if (r != null) return unescape(r[2]); return null;
}


原文地址:https://www.cnblogs.com/v-dai/p/6944104.html