获取路由参数工具函数

获取 url 中 msg=info 格式的键值对

方法一:输出所有路由参数的键值对

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 函数:
const getQuerys = (urls) => {
let url = urls || location.href
let res = {}
try {
const queryString = url ? url.split('?')[1] : window.location.search.slice(1);
const queryStringArr = queryString.split('&');
for (var i = 0; i < queryStringArr.length; i++) {
const param = queryStringArr[i].split('=');
const paramName = param[0];
const paramValue = typeof (param[1]) === 'undefined' ? true : param[1];
res[paramName] = paramValue;
}
} catch(err) {
console.log(err)
}
console.log(res)
return res
}

//使用:
let href = 'https://www.baidu.com/s?wd=你好&rsv_spt=1'
getQuerys(href);
// { wd: "你好", rsv_spt: "1" }

方法二:获取单个参数

1
2
3
4
5
6
7
8
9
10
11
const getQueryString = (urls,name) => {
let url = urls || location.href
const reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
const search = url.split('?')[1]
const r = search.match(reg) || [];
return r[2];
}

const url = 'https://www.baidu.com/s?wd=你好&rsv_spt=1'
getQueryString(url,'wd')
// 你好

获取 url 中最后一个 / 后的字符串

1
2
3
const pathName = window.location.pathname
const index: number = pathName.lastIndexOf("\/");
const res: string = pathName.substring(index + 1, pathName.length);