获取参数函数
进阶版
默认使用当前页面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);