直接获取URL的办法----------new URLSearchParams()

  • URLSearchParams 构造函数有很多实用的方法来处理 URL 的查询字符串
  • 平常我们通过查询字符串的方式传参需要通过对字符串进行处理后才能使用。
  • URLSearchParams()中有帮我们做处理的方法直接返回处理后的数据

格式

URLSearchParams构造函数 通过new实例化,并传入查询的字符串

let params = new URLSearchParams('需要查询的URl');//一般配合location.search使用

必须传入以下格式的字符串
在这里插入图片描述

URLSearchParams上的方法

  • has() 查询指定键名是否存在 返回一个Boolean值
        var paramsString = "?key=java&q=你好啊&q=我叫张三"
        var searchParams = new URLSearchParams(paramsString);
        // 查询指定键名是否存在 
        console.log(searchParams.has("q") );// true
  • get() 获取指定搜索参数的第一个值。
        var paramsString = "?key=java&q=你好啊&q=我叫张三"
        var searchParams = new URLSearchParams(paramsString);
        // 获取指定搜索参数的第一个值。
        console.log(searchParams.get("q"));   // "你好啊"; 
  • getAll() 获取指定搜索参数的所有值,返回是一个数组。
        var paramsString = "?key=java&q=你好啊&q=我叫张三"
        var searchParams = new URLSearchParams(paramsString);
        // 获取指定搜索参数的所有值,返回是一个数组。
        console.log(searchParams.getAll("q"));; //  ['你好啊', '我叫张三']
  • toString() 返回搜索参数组成的字符串,可直接使用在URL上。
        var paramsString = "?key=java&q=你好啊&q=我叫张三"
        var searchParams = new URLSearchParams(paramsString);
        //  返回搜索参数组成的字符串,可直接使用在URL上。
       // 我这里使用decodeURI对获取的字符串进行了一下解码 不解码就会是:key=java&q=%E4%BD%A0%E5%A5%BD%E5%95%8A&q=%E6%88%91%E5%8F%AB%E5%BC%A0%E4%B8%89&q=%E6%88%91%E6%98%AF%E9%80%9A%E8%BF%87append%E6%B7%BB%E5%8A%A0%E7%9A%84
        console.log(decodeURI(searchParams.toString())); // 'key=java&q=你好啊&q=我叫张三'
  • append() 插入一个指定的键/值对作为新的搜索参数
        var paramsString = "?key=java&q=你好啊&q=我叫张三"
        var searchParams = new URLSearchParams(paramsString);
        searchParams.append("q", "我是通过append添加的");  // 添加>>>> q=我是通过append添加的
        console.log(decodeURI(searchParams.toString())); // 'key=java&q=你好啊&q=我叫张三&q=我是通过append添加的'
  • set() 设置一个搜索参数的新值,如果原来有多个值将删除其他所有的值。
        var paramsString = "?key=java&q=你好啊&q=我叫张三"
        var searchParams = new URLSearchParams(paramsString);
        searchParams.set("q", "halo!!!") 
        console.log(decodeURI(searchParams.toString())); // 'key=java&q=halo!!!'
  • delete() 从搜索参数列表里删除指定的搜索参数及其对应的值。
        var paramsString = "?key=java&q=你好啊&q=我叫张三"
        var searchParams = new URLSearchParams(paramsString);
        searchParams.delete("q");
        console.log(decodeURI(searchParams.toString())); // 'key=java&q=halo!!!'
  • entries() 返回一个iterator,允许遍历该对象中包含的所有键/值对。每一组键值对都是 USVString对象
        var paramsString = "?key=java&q=你好啊&q=我叫张三"
        var searchParams = new URLSearchParams(paramsString);
        var fn = searchParams.entries()
        for (var pair of fn) {
            console.log(pair);
        }
        // 打印结果
        //  ['key', 'java']
        //  ['q', '你好啊']
        //  ['q', '我叫张三']
  • **sort() **方法对包含在此对象中的所有键/值对进行排序,并返回undefined。排序顺序是根据键的Unicode代码点。该方法使用稳定的排序算法 (即,将保留具有相等键的键/值对之间的相对顺序)。
        var paramsString = "?b=1&a=2&c=3&d=2"
        var searchParams = new URLSearchParams(paramsString);
        searchParams.sort();
        console.log(decodeURI(searchParams.toString())); //a=2&b=1&c=3&d=2
  • 2
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值