// 获取地址栏参数
function getQueryString(name) {
let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
let r = window.location.search.substr(1).match(reg)
if (r != null) {
return unescape(r[2])
}
return null
}
// 调用
getQueryString('id')
// 解析全部地址栏参数
function overAll() {
// 1.获取地址栏参数,正常来说,地址栏里的汉字获取后会乱码,所以decodeURI可以把参数中的乱码的汉字转为真正的汉字
var can = decodeURI(location.search);
// 2.用slice去掉开头的?
var str = can.slice(1);
// 3.用split把字符串按照&分隔
var arr1 = str.split('&');
// 5.定义空对象
var obj = {};
// 6.遍历给空对象添加属性,obj.属性=属性值;,由于是变量,所以用中括号方式
arr1.map(function (ele) {
// 4.再次用split把数组按照=进行分隔
var arr = ele.split('=');
obj[arr[0]] = arr[1];
});
return obj;
};
// 解析指定地址栏参数
function Appoint(Name) {
// 1.先获取地址栏参数并去掉?和转化格式用decodeURI
var val = decodeURI(location.search.slice(1));
// 2.定义正则表达式,匹配符合参数的表达式,
// 表达式可能是以&开头或前面没有&以Name开头的,&name=abc 等号一定会有,等号后面的值必须匹配至少一位不是&的值,
var reg = new RegExp('(^|&)' + Name + '=([^&]+)');
// match是字符串类型的方法,支持全文匹配,str.match(reg)用于检测字符串是否与reg匹配,如果匹配返回数组,不匹配返回null
// 注意:match方法返回的数组,第一项是reg匹配到的内容,第二项到最后一项是各个()分组所匹配到的内容。
return val.match(reg)[2];
// reg.exec(str)也是同match功能一样的正则方法,检测是否匹配,返回值也是数组,但不支持全文匹配,所以一般用match
};
2021-08-13 js-有时候也需要原生js解析地址栏参数的哟
最新推荐文章于 2024-07-10 10:51:41 发布