JS_js获取url参数、获取所有参数

获取参数函数

进阶版

默认使用当前页面url,可以随意传入一串字符串返回获取参数值

function getUrlParam(name, url=''){
	if (!url) url = window.location.search
	
	name = name.replace(/[[]]/g, '\\$&')
	const regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)')
	const results = regex.exec(url)
	
	if (!results) return null
	if (!results[2]) return ''
	
	return decodeURIComponent(results[2].replace(/\+/g, ' '))
}

使用

const id = getUrlParam('id')
const id = getUrlParam('fcode', '?code=05102&state=#/pages/donation/index?id=1718&fcode=9999')

方法一

function geturldata(name){
	//构造一个含有目标参数的正则表达式对象
	var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
	//匹配目标参数
	var r = window.location.search.substr(1).match(reg);
	//返回参数值
	if (r!=null) return unescape(r[2]);
	return null;
}

使用

let id = geturldata('id');	//获取地址栏的id参数

方法二

const url = new URL(window.location.href);
const params = new URLSearchParams(url.search);
const param1 = params.get('param1');	// 获取param1

获取地址所有参数

function UrlSearch() {
	var name, value;
	var str = location.href; //取得整个地址栏
	var num = str.indexOf("?")
	str = str.substr(num + 1); //取得所有参数 stringvar.substr(start [, length ]

	var arr = str.split("&"); //各个参数放到数组里
	for (var i = 0; i < arr.length; i++) {
		num = arr[i].indexOf("=");
		if (num > 0) {
			name = arr[i].substring(0, num);
			value = arr[i].substr(num + 1);
			this[name] = value;
		}
	}
}
var Request = new UrlSearch(); //实例化  Request所有参数对象集合
console.log(Request.id);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值