内容简介:众所周知,我们可以通过假设有这样一个直接把url赋值给
众所周知,我们可以通过 location
获得当前页面地址(URL)的 href
、 protocol
、 host
、 search
、 hash
等属性,但是如果给你一个 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 ,不会触发iframe的 window.onload
,直接访问 location.href
,浏览器也给出提示限制跨域。
a
提到 url ,可能会有人想到 <a>
标签,因为我们经常访问页面地址是通过点击 a
链接跳转的,那么能否通过它来解析 url 呢?
我们创建了一个 a
元素,并给它的 href
赋值了 url ,可以打印出这个 a
元素的对象,其中就包括 url 的这些属性。
并且可以利用它简单判断一个 url 是否是合法的,不合法的 url ,
host
,
origin
为
null
URL
利用 a
元素来解析 url 算是奇淫巧技吧,其实现代浏览器提供了一个创建的 URL对象 的构造函数— URL()
,直接把 url 当作参数传入,就会返回一个 URL对象 。
返回的 URL对象 有个 searchParams
属性,可以对 url 的 search
部分解析,再也不需要用循环或正则方式获取 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...
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 查找一个字符串中最长不含重复字符的子字符串,计算该最长子字符串的长度
- 字符串、字符处理总结
- 高频算法面试题(字符串)leetcode 387. 字符串中的第一个唯一字符
- php删除字符串最后一个字符
- (三)C语言之字符串与字符串函数
- 算法笔记字符串处理问题H:编排字符串(2064)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
PHP Cookbook
Adam Trachtenberg、David Sklar / O'Reilly Media / 2006-08-01 / USD 44.99
When it comes to creating dynamic web sites, the open source PHP language is red-hot property: used on more than 20 million web sites today, PHP is now more popular than Microsoft's ASP.NET technology......一起来看看 《PHP Cookbook》 这本书的介绍吧!