JavaScript通过location.search获取url请求参数

作者:陆金龙    发表时间:2015-07-12 16:12   


获取参数的关键在于使用window.location.search,location.search是从当前URL的?号开始的字符串 ,通过对location.search进行提取,即可得到需要的参数。

 

为了方便纯前端html页面获取参数,可以对该功能进行封装,只要传入一个参数名,就可以获取参数的值。

方式一:使用正则表达式实现

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  decodeURIComponent(r[2]) ;//ECMAScript v3 已从标准中删除了 unescape() 函数,并反对使用它,因此应该用 decodeURI() 和 decodeURIComponent() 取而代之.

            return null;

        }

方式二:对字符串分割得到参数的数组

var QueryString = (function ()
{
    var paramStr = window.location.search.slice(1);
    if (paramStr == '') return {};
    var result = {};
    var va = paramStr.split("&");
    for (var i = 0; i < va.length; i++)
    {
        var s = va[i].split("=");   
        var k = s[0];
        var v = s[1];
        result[k] = v;
    }
    return result;
})();