手记

获取请求url的查询字符串

在两个页面间通过url传参的时候,需要获取传递的查询字符串,例如获取下面url的name对应的值:

www.baidu.com/img?name=lili&age=18&school=81school

有两种方法,一是用数组split()为主的拆分,二是用正则表达式的拆分。

1 数组拆分:

function getQueryStringArgs(){    var qs = (location.search.length > 0 ? location.search.substring(1) : "");        args = {},        items = qs.length ? qs.split("&") : [],        item = null,        name = null,        value = null,        i = 0,        len = items.length;    for(i=0; i<len; i++){        item = items.split("=");        name = decodeURIComponent(item[0]);        value = decodeURIComponent(item[1]);        if(name.length){            args[name] = value;        }    }    return args;}

2  正则表达式:

function getQuery(name) {    var reg = new RegExp("(^|&)"+name+"=([^&]*)(&|$)"),      str = window.location.search.substr(1).match(reg);      if(str !== null) {        return unescape(str[2]);    }    return null;}

3 自己写的:(反面案例)

function getQuery(){    var search = location.search.substring(1),        queryArr = search.split('&'),        obj;    for(var i=0, len=queryArr.length; i < len; i++){        var str = queryArr.split('=');        obj[str[0]] = str[1];    }    return obj;}

1是参考js高级程序设计P207页。

0人推荐
随时随地看视频
慕课网APP