获取URL中指定的参数的值 — location.search

Posted leaf930814

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取URL中指定的参数的值 — location.search相关的知识,希望对你有一定的参考价值。

1、先看看location对象

2、其中的search属性就获取当前URL的查询部分(问号?之后的部分)

 

3、改造location.search

比如当前URL为:https://www.hao123.com/?name=leaf&age=12,获取age的值

location.search.substring(1).split(\'&\')[1].split(\'=\')[1]。
当然可以用循环获取所有想要字段的值

 

4、不用location.search,封装一个param函数,解析出给你url的参数;

//如定的url:
 \'http://www.baidu.com/?user=leaf&age=10&id=123&id=456&city=%E5%8C%97%E4%BA%AC&d&student\';

 //解析出:
 //要求:
 // 重复出现的 key 要组装成数组,能被转成数字的就转成数字类型
 // 解析出中文
 // 未指定值的 key 约定值为 true
{
  user: \'anonymous\',
  age:10,
  id: [123, 456],    
  city: \'北京\',        
  student: true,      
}

  

//demo

function parseURL(str){
 	//如果参数不是对象。返回空对象
 	if(typeof str!=\'string\'){
 		return {}
 	}

 	var paramObj = {},//保存最终输出的对象
 	    _str = str.substr(str.indexOf(\'?\')+1);

 	//解析中文
 	paraArr = decodeURI(_str).split("&");

 	var tmp , key, value, newValue;
 	for(var i=0, len=paraArr.length; i<len;i++){
 		tmp = paraArr[i].split("=");
 		key = tmp[0];
 		value = tmp[1]||true;

 		//处理数字\'100\'=>100
 		if(typeof value === \'string\' && isNaN(Number(value)) === false){
 			value = Number(value);
 		}

 		//如果key没有出现过(可能是0 或者false)
 		if(typeof paramObj[key] === "undefined"){
 			paramObj[key] = value;
 		}else{
 			newValue = Array.isArray(paramObj[key]) ? paramObj[key] : [paramObj[key]];
 			newValue.push(value);
 			paramObj[key] = newValue;
 		}

 	}

 	 return paramObj;

 }

//结果

 

 5、简单小巧的正则的方法

function getQuerystring(name){
	let reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
     	let arg = window.location.search.substr(1).match(reg);
     	if(arg!=null){
     		return  unescape(r[2]);
     	}else{
     		return null;
     	}
}

  

 

如URL:www.hao123.com/dist/redPacket/inviteShare.html?code=B197FD&from=singlemessage

getQuerystring(\'code\')  //B197FD


 

 

  

 

以上是关于获取URL中指定的参数的值 — location.search的主要内容,如果未能解决你的问题,请参考以下文章

js获取url中指定参数的值(兼容hash)

URL的编码

请求传参 有特殊符号

js获取URL里的参数

get请求时特殊符号处理

用JavaScript,获取Table中指定的行列