daily-interview / fe-interview

:smiley: 每日一道经典前端面试题,一起共同成长。
https://blog.csdn.net/u010494753
MIT License
172 stars 22 forks source link

JS获取url参数的方法 #52

Open artdong opened 4 years ago

artdong commented 4 years ago

JS获取url参数的方法

artdong commented 4 years ago

1、循环

function getQuery() {
    const url = decodeURI(location.search); // 获取url中"?"符后的字串(包括问号)
    let query = {};
    if (url.indexOf("?") != -1) {
        const str = url.substr(1);
        const pairs = str.split("&");
        for(let i = 0; i < pairs.length; i ++) {
             const pair = pairs[i].split("=");
            query[pair[0]] = pair[1];
        }
    }
    return query ;  // 返回对象
}

function getQueryVariable(name) {
    const url = decodeURI(location.search); // 获取url中"?"符后的字串(包括问号)
    let query = {};
    if (url.indexOf("?") != -1) {
        const str = url.substr(1);
        const pairs = str.split("&");
        for(let i = 0; i < pairs.length; i ++) {
             const pair = pairs[i].split("=");
             if(pair[0] === name) return  pair[1]; // 返回 参数值
        }
    }
   return(false);
}

2、正则表达式

function  getQueryVariable(name) {
      const reg = new RegExp("(^|&)" + name+ "=([^&]*)(&|$)", "i");
      const result = window.location.search.substr(1).match(reg);
      if ( result != null ){
         return decodeURI(result[2]);
     }else{
         return null;
     }
}