获取url中参数的方法

参考文章:https://blog.csdn.net/devcloud/article/details/90694093
     https://blog.csdn.net/weixin_41575159/article/details/93169070
     https://juejin.cn/post/6844903666000904205
写在前面:

获取url网址的方法:window.location.href

1. 原生js

var url="https://gitbook.cn/gitchat/geekbooks?tag=JavaScript&name=pwwu&age=24"

var parms = url.indexOf('?') +1
var temp1 = url.slice(parms)
var keyValue = temp1.split ('&')
var obj = {};
for (var i=0;i<keyValue.length;i++){
	var item = keyValue[i].split('=')
	var key = item[0]
	var value = item[1]
	obj[key]=value
}

console.log(url);
console.log(temp1);    //  ['https://gitbook.cn/gitchat/geekbooks','tag=JavaScript&name=pwwu&age=24']
console.log(pram);     //  tag=JavaScript&name=pwwu&age=24
console.log(keyValue); //  ['tag=JavaScript','name=pwwu','age=24']
console.log(obj);      //  {tag:'JavaScript',name:'pwwu',age:'24'}

总结

要思路就是将Url用split()分割成不同的块,返回值为一个数组,一直分割到为 [‘tag=JavaScript’,‘name=pwwu’,‘age=24’]为止,然后将该数组中的每一项以键值对的形式传进一个空对象obj(这里需要遍历数组),最后利用obj.name“点”的方式获取相应参数。

2. URLSearchParams()函数

var url = "https://gitbook.cn/gitchat/geekbooks?tag=%E5%A4%A7%E6%95%B0%E6%8D%AE&name=gy&age=22"

var searchParms = new URLSearchParams(url)

console.log(searchParms.get(age))  //22

URLSearchParams接口定义了一些实用的方法来处理URL字符串查询。

URLSearchParams.append(“key”,“value”) --插入一个指定的键值对
URLSearchParams.delet(“key”)
URLSearchParams.get(‘key1’) – 获取键的相应值
URLSearchParams.getAll() – 获取所有键的值,返回是一个数组。
URLSearchParams.has(‘key1’) – 判断是否有该键值,返回值为true或false

3. getUrlParams()

function getUrlParam(name){
	//构造一个含有目标参数的正则表达式对象
	var reg = new RegExp("(^|&)"+name+"=([^&*])(&|$)")
	//匹配目标参数
	var r = window.location.search.substr(1).match(reg) //匹配浏览器窗口的url
	// var r = url.substr(1).match(reg)  // 匹配定义的url
	// substr(start,len) 抽取字符串从索引start处开始的指定书目的字符。
	//返回参数
	if(r!=null){
		return nuescape(r[2])
	}else{
		return null
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值