获取 url 中的参数

题目描述

获取 url 中的参数
1. 指定参数名称,返回该参数的值 或者 空字符串
2. 不指定参数名称,返回全部的参数对象 或者 {}
3. 如果存在多个同名参数,则返回数组
输入例子:
getUrlParam('http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe', 'key')

输出例子:
[1, 2, 3]
  function getUrlParam(sUrl, sKey) {
        var val =sUrl.split('#')[0].split('?')[1];
        if(sKey){//指定参数名称
            var arry= new Array();
            var str = val.split('&');
            for(var i =0 ;i<str.length;i++){
                var tem = str[i].split('=');
                if(tem[0]==sKey){
                   arry.push(tem[1]);
                }
            }
            if(arry.length==0){
                //  空字符串
                return "";
            }else if (arry.length==1){
                return arry[0]
            } else {
                //如果存在多个同名参数,则返回数组
                return arry;
            }
        }else {//不指定参数名称,返回全部的参数对象 或者 {}
            if(val == undefined||val == ""){
                return {};
            }else {
                var arrys=new Object();
                var strs = val.split('&');
                for(var i =0 ;i<strs.length;i++) {
                    var tem = strs[i].split('=');
                    if (!(tem[0] in arrys)){
                        arrys[tem[0]]=[];
                    }
                    arrys[tem[0]].push(tem[1]);
                }
                return arrys;
            }
        }
    }

 




posted @ 2017-06-29 12:43  可以用标点做名字吗  Views(221)  Comments(0Edit  收藏  举报