1.麻烦点自己匹配
如下图代码所示,为什么不用queryString那个插件,因为解析加号“+”的时候会解析成空格,还需去替换,这个踩过坑,用下方这个即可:
const GetQueryString = (name: string, url?: string) => {
let search = window.location.search.substr(1)
if (url && url.split('?').length === 2) {
search = url.split('?')[1]
}
const reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
const r = search.match(reg)
if (r != null) return unescape(r[2])
return null
}
2.使用new URL().searchParams
const params = new URL(window.location.href).searchParams;
const code = params.get('code');
就可以获得code参数的值了,其他参数一样;
3.如果不想要中间的某个元素
例如下面代码我们删掉的是url中的clientId参数
let url: any = new URL(href);
let p = new URLSearchParams(url.search);
p.delete("clientId");
url.search = p.toString();
href = url.href;
console.log(url);
打印出的url是URL对象,这里注意一下