JS获取网页的URL以及各参数

一. 前言

       在前端开发过程中难免会遇到处理 url 参数的问题,使用框架进行项目开发时或许不用,它们有自带的获取参数的方式。但是抛开使用框架,我们也可以使用原生 js 方式或借助于第三方库来实现参数的获取。下面总结了几种获取 URL 参数的方式。

二. 具体介绍

方法1: 字符串 split 方法

let url = 'https://www.baidu.com?name=张三&age=20&sex=male';

function getUrlParams(url){

        // 使用 ? 分隔字符串,并获取数组的第二个参数的值(下表索引为 1 )

        let urlString = url.split('?')[1];

        // 创建空对象存储各个参数

        let obj = {};

        // 通过 & 将每个参数截取出来

        urlString.split('&').forEach(item => {

                // 将每一项以 = 作为分隔的标志,让前者作为 key,后者作为 value

                let [key, value] = item.split('=');

                obj[key] = value;

        })

        return obj;

}

console.log(getUrlParams(url));

JS获取网页的URL以及各参数_第1张图片

方法2: 利用 URLSearchParams

在 MDN 中结合两种方式实现参数的获取:

  • 使用 new URLSearchParams(url)方法,返回一个 URLSearchParams对象,再调用 entries() 方法返回一个可迭代对象(Iterator);

  • 使用 Object.fromEntries(iterable) 方法转化为普通对象。

        URLSearchParams方法获取

        

注:URLSearchParams 方法不仅可以获取参数,还可以将参数对象转换为字符串。

方法3: 利用正则匹配方法

在前端开发过程中,使用正则可以帮助我们解决大部分的字符匹配问题,帮我们快速获取需要的字符信息,方便验证和字段校验。下面使用正则提取 URL 中我们需要的参数。

        利用正则匹配方法获取url中参数

        

JS获取网页的URL以及各参数_第2张图片

方法4: 使用第三方库 qs

使用第三方库 qs 也可以实现 url 中参数字符的提取,还能实现将参数对象转换为 url 参数形式,需要注意的是浏览器 cdn 方式引入时是默认添加到全局对象 window 的 qs 属性上的。

        使用第三方库 qs 获取参数

        

        

JS获取网页的URL以及各参数_第3张图片

三. 补充

var url = 'http://127.0.0.1:8020/Test/index.html#test?name=test'

window.location.href:设置或获取整个 URL 字符串 —— url;

window.location.protocol:设置或获取 URL 的协议部分 —— http;

window.location.host设置或获取 URL 的主机部分 —— 如:127.0.0.1

window.location.port设置或获取与 URL 关联的端口号吗 —— 如:8020;

window.location.pathname设置或获取 URL 的路径部分(就是文件地址)—— /Test/index.html#test?name=test

window.location.search设置或获取 href 属性中跟在 ‘?’ 后面的部分 —— name=test

window.location.hash设置或获取 href 属性中在 ‘#’ 后面的分段 —— test?name=test

四. ending

关于 JavaScript 中获取 URL 的各种方法如上所示,后续有新的方法会更新。

你可能感兴趣的:(JavaScript学习,javascript,前端,vue.js)