小知了
一个不神奇的博客
获取url的查询字符串
2016-12-29 02:07:01   阅读524次

   在两个页面间通过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页。



-----------------------------------------------------
转载请注明来源此处
原地址:#

-----网友评论----
暂无评论
-----发表评论----
微网聚博客乐园 ©2014 blog.mn886.net 鲁ICP备14012923号   网站导航