首页 > 试题广场 >

如何获取 url 中的 query 字段对应的值 比如

[问答题]
如何获取 url 中的 query 字段对应的值

现在要编写一个函数获取 source 对应的值 part1
query=(url)=>{
var str=url.split('?')[1];
if(str){
var res=str.split('=')[1];
}
}
发表于 2018-07-23 15:32:25 回复(2)
let url = "www.xinlang.com?id=127277"
function getter(url) {
    let v1 = url.split("?")
    if(v1[1].includes("id")) {
        let v2 = v1[1].split("=");
        console.log(v2);
    }

}
getter(url);
发表于 2018-08-26 15:09:13 回复(0)
function parseURL(url) {
  const el = document.createElement("a")
  el.href = url
  const search = el.search.replace('?', '')
  let query = {}
  search.split('&').map(str => {
    const [key, value] = str.split('=')
    query[key] = value
  })
  return query
}
编辑于 2019-01-15 22:29:45 回复(0)
let getQuery = (url) => {
  let p = url.split('?')[1];
  let sourcePos = p.indexOf('source');
  if (sourcePos > -1) {
    if (p.indexOf('&', sourcePos+7) > -1) {
      return p.substring(sourcePos+7,p.indexOf('&', sourcePos+7));
    } else {
      return p.substring(sourcePos+7);
    }
  }
};
编辑于 2018-09-20 13:54:35 回复(0)
/**  *若没有传入url  *就获取本地location.search  *并且以对象的形式返回  *  */ function querystring2obj(url){      var queryArr = (url && url.substr(url.indexOf('?') + 1).split('&')) ||                    location.search.substr(1).split('&'),         query = {};     for(var i = 0 , len = queryArr.length ; i < len ; i++){         var key = queryArr[i].split('=')[0],             val = queryArr[i].split('=')[1];         if(query.hasOwnProperty(key)){             query[key] = [query[key]]             query[key].push(val)             continue         }         query[key] = val     }     return query }
编辑于 2018-09-05 23:36:24 回复(0)
function getQuery(url){ var str = url.indexOf('?')>0? url.split('?')[1] :''; var arr = str.length ? str.split('&'):[], res = {};  arr.forEach(function(item){ var itemArr = item.split('='); res[itemArr[0]] = itemArr[1];}); return res; }
编辑于 2018-08-10 17:46:15 回复(0)
var value=url.split('?')[1].split('=')[1];
发表于 2018-08-06 21:56:20 回复(0)
var getUrlParam =function(name) {
    var reg = new RegExp('(^|&)'+name+'=([^&]*)(&|$)');
    var result = window.location.search.substr(1).match(reg);
    return result ? decodeURIComponent(result[2]) : null;
}
编辑于 2018-08-05 15:26:40 回复(0)
// 用于指定url的指定参数查询,结果返回数组对象
// 结果键值对形式:查询参数名,对应查询参数值
// 如未指定查询参数,返回所有
const getQuery=(url='',query='')=>{
  // 用于结果存放
    let result=[];
    if (!url) {
      url=window.location.href;
    }
    if (url.indexOf('?')>-1) {
      if (!query) {
        // 无查询参数时返回url中所有参数结果集合
        let tmp=url.split('?')[1].split('&');
        tmp.forEach((item,index)=>{
          // 保存查询并转码
          let tmpObj={};
          tmpObj[item.split('=')[0]]=unescape(item.split('=')[1]);
          result.push(tmpObj);
        })
      }
//出错了
      // else {
      //     // 有查询参数时正则匹配到结果并返回
      //     // 嗯,正则的方式没搞懂。网上看到的
      //   let reg = new RegExp("(^|&)" + query + "=([^&]*)(&|$)", "i");
      //   console.log(reg);
      //   let r =  url.search().substr(1).match(reg);
      //   console.log(r);
      //   if (r != null)
      //     result.push({query:unescape(r[2])});
      // }

    }else {
      return result;
    }
    return result;
}

发表于 2018-08-04 22:31:18 回复(1)