JavaScript -- 获取url参数

题目描述

获取 url 中的参数

  1. 指定参数名称,返回该参数的值 或者 空字符串
  2. 不指定参数名称,返回全部的参数对象 或者 {}
  3. 如果存在多个同名参数,则返回数组

在这里插入图片描述

分两种大致情况:给了参数名和不给参数名
给参数名要细分三种情况:
1、只有一个同名参数,返回参数的值;
2、参数没值,返回空;
3、存在多个同名参数,则返回值数组
不给参数名还要分两种情况:
1、有参数对象返回全部的参数对象;
2、否则返回空
function getUrlParam(sUrl, sKey) {
    
    
    let argList = sUrl.split('?')[1].split('#')[0].split('&'); 
    let argNameList = new Array();
    let argSameKey = new Array();
    let arrObj = new Object();
    for(let i = 0;i<argList.length;i++){
    
    
        argNameList[i] = argList[i].split('=')[0];
        if(argList[i].split('=')[0] === sKey) argSameKey.push(argList[i].split('=')[1]);
    }
    if(!sKey){
    
    
        if(argNameList.length > 0){
    
    //返回对象
            for(var i = 0, len = argList.length; i < len; i++){
    
    
                var tmp = argList[i].split('=');
                if (!(tmp[0] in arrObj)) {
    
    
                    arrObj[tmp[0]] = [];
                }
                arrObj[tmp[0]].push(tmp[1]);               
            }
            return arrObj;
        }else return {
    
    };
    }else{
    
    
        if(argSameKey.length == 1) return argSameKey[0]; //只有一个参数,返回参数值
        if(argSameKey.length == 0) return {
    
    }; //没有有参没值
        if(argSameKey.length>1) return argSameKey; //如果存在多个同名参数,则返回值数组
    }
}

猜你喜欢

转载自blog.csdn.net/sanjun_done/article/details/114868486
今日推荐