获取url里面的参数值或者追加查询字符串,在这之前,我们一般通过正则匹配处理,然而现在有一个新的api,具体详情可以查看这里,可以让我们以很简单的方式去处理url。
假如我们有这样一个url,"?post=1234&action=edit",我们可以这样处理这个url
var urlParams = new URLSearchParams('?post=1234&action=edit');
console.log(urlParams.has('post'));
console.log(urlParams.get('action')); // "edit"
console.log(urlParams.getAll('action')); // ["edit"]
console.log(urlParams.toString()); // "?post=1234&action=edit"
console.log(urlParams.append('active', '1')); // "?post=1234&action=edit&active=1"
那浏览器支持程度如何呢?通过这个地址查看,可以发现大部分浏览器都支持哦!,如果碰到不支持的情况,这里还有个polyfill。
下面就详细了解下
一个实现了 URLSearchParams
的对象可以直接用在 for...of
结构中,例如下面两行是相等的。
for (var p of mySearchParams);
for (var p of mySearchParams.entries());
构造函数
返回一个 URLSearchParams
对象。
属性
该接口不继承任何属性。
方法
该接口不继承任何属性。
插入一个指定的键/值对作为新的搜索参数。
从搜索参数列表里删除指定的搜索参数及其对应的值。
返回一个iterator
可以遍历所有键/值对的对象。
获取指定搜索参数的第一个值。
获取指定搜索参数的所有值,返回是一个数组。
返回 Boolean
判断是否存在此搜索参数。
返回iterator
此对象包含了键/值对的所有键名。
设置一个搜索参数的新值,假如原来有多个值将删除其他所有的值。
按键名排序。
返回搜索参数组成的字符串,可直接使用在URL上。
返回iterator
此对象包含了键/值对的所有值。
可以根据自己去尝试下,比以前的正则方便多了