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...


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

查看所有标签

猜你喜欢:

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

PHP 6与MySQL 5基础教程

PHP 6与MySQL 5基础教程

(美)厄尔曼 / 陈宗斌 等 / 人民邮电出版社 / 2008-11-1 / 65.00元

本书是一部经典的入门级著作,采用基于任务的方法来讲授PHP和MySQL,使用大量图片指导读者深入学习语言,并向读者展示了如何构造动态Web站点。书中用简洁、直观的步骤和讲解提供了学习任务和概念的最快方式。通过学习本书,读者可以快速、高效地掌握PHP和MySQL,成为一位构建Web站点的高手。 本书适合初中级Web应用开发和设计人员阅读。 本书是讲述PHP和MySQL技术的畅销书,以深入......一起来看看 《PHP 6与MySQL 5基础教程》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

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

UNIX 时间戳转换

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

HEX HSV 互换工具