url字符串解析

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

内容简介:众所周知,我们可以通过假设有这样一个直接把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...


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

查看所有标签

猜你喜欢:

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

Algorithms for Image Processing and Computer Vision

Algorithms for Image Processing and Computer Vision

Parker, J. R. / 2010-12 / 687.00元

A cookbook of algorithms for common image processing applications Thanks to advances in computer hardware and software, algorithms have been developed that support sophisticated image processing with......一起来看看 《Algorithms for Image Processing and Computer Vision》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具