获取url参数的方法

正则表达式获取url

常规使用正则表达式去获取url参数的代码

1
2
3
4
5
6
7
8
9
function getParams(url, params){
var res = new RegExp("(?:&|/?)" + params + "=([^&$]+)").exec(url);
return res ? res[1] : '';
}

// url: xx.com?id=2&isShare=true
const id = getParams(window.location.search, 'id')

console.log(id) // 2

URLSearchParams方法

使用URLSearchParams方法实现获取url参数

1
2
3
4
5
6
const urlSearchParams = new URLSearchParams(window.location.search);
const params = Object.fromEntries(urlSearchParams.entries());

console.log(params) // {id: '2', isShare: 'true'}
console.log(params.id) // 2
复制代码

只需要以url作为参数传入,并且创建URLSearchParams的一个实例对象,然后调用entries()这个方法,返回一个迭代协议iterator,该协议支持可以遍历所有支持健/值对的列表

此时还需要通过Object.fromEntries()这个方法去把该健/值对的列表,然后我们就可以愉快地使用获取到的参数啦

URLSearchParams的兼容性

搜了一下URLSearchParams的兼容性查询,详情请点击

其他现代浏览器的兼容性都杠杠的,如果是不需要兼容IE的项目,可以放心使用

如果实在要兼容IE,可以使用url-search-params-polyfill这个插件去使用啦

安装方式:

1
npm install url-search-params-polyfill --save

使用方式:

1
const params = new URLSearchParams("id=2&isShare=true");