url字符串解析

栏目: 后端 · 前端 · 发布时间: 6年前

内容简介:众所周知,我们可以通过假设有这样一个直接把url赋值给

众所周知,我们可以通过 location 获得当前页面地址(URL)的 hrefprotocolhostsearchhash 等属性,但是如果给你一个 url字符串 ,怎么得到这些属性呢?也许用正则是一个方法。

假设有这样一个 url 字符串 "https://demo.vczhan.com/wave/heart-wave.html?name=abc&age=18#part" ,该怎么解析它呢。

iframe

直接把url赋值给 location.href 会从当前页面跳转到 url 的页面,如果我们在当前页面新建一个 iframe 并给它的 src 赋值这个 url ,似乎可以通过iframe的 window.location 拿到url的各个属性。

url字符串解析

但是很遗憾,对于 跨域的url ,不会触发iframe的 window.onload ,直接访问 location.href ,浏览器也给出提示限制跨域。

a

提到 url ,可能会有人想到 <a> 标签,因为我们经常访问页面地址是通过点击 a 链接跳转的,那么能否通过它来解析 url 呢?

url字符串解析

我们创建了一个 a 元素,并给它的 href 赋值了 url ,可以打印出这个 a 元素的对象,其中就包括 url 的这些属性。

url字符串解析

并且可以利用它简单判断一个 url 是否是合法的,不合法的 urlhost , originnull

url字符串解析

URL

利用 a 元素来解析 url 算是奇淫巧技吧,其实现代浏览器提供了一个创建的 URL对象 的构造函数— URL() ,直接把 url 当作参数传入,就会返回一个 URL对象

url字符串解析

返回的 URL对象 有个 searchParams 属性,可以对 urlsearch 部分解析,再也不需要用循环或正则方式获取 search 对象。

var url = 'https://demo.vczhan.com/wave/heart-wave.html?name=abc&age=18#part'
var searchParams = new URL(url).searchParams
searchParams.get('name') // abc
searchParams.has('age')  // 18

当然,有个专门处理 search 的API: URLSearchParams

// {a: 1, b: 2} -> a=1&b=2
new URLSearchParams({a: 1, b: 2}).toString()


// a=1&b=2 -> {a: "1", b: "2"}
var obj ={}
var searchParams = new URLSearchParams('?a=1&b=2')

// searchParams.has('a') // true
// searchParams.get('a') // 1
// searchParams.append('c', '3'); searchParams.toString() // "a=1&b=2&c=3"

for(var [key, value] of searchParams.entries()) {
   obj[key] = value
}
console.log(obj)

更详细的请参考下方链接

URL: https://developer.mozilla.org...

URLSearchParams: https://developer.mozilla.org...


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

锦绣蓝图

锦绣蓝图

[美] 沃德科 (Christina Wodtke)、[美] 戈夫拉 (Austin Govella) / 蔡芳 / 人民邮电出版社 / 2009-11-01 / 59.00

Web 2.0和社会化大趋势下,你的网站发展喜人,但是问题也接踵而来:信息变得越来越庞杂无序,业务流程愈加复杂,搜索和导航越来越难,用户对使用体验的要求也越来越高……怎么办? 作者非常通俗易懂地讲述了如何规划易用的网站及其背后的信息架构原理。首先介绍了建立信息架构的八项基本原则,然后重点强调了组织系统和元数据在信息架构中的作用,并指出设计搜索和导航需要考虑的问题和方法,另外还补充了当今热门的......一起来看看 《锦绣蓝图》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

SHA 加密
SHA 加密

SHA 加密工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具