hugh 的个人博客

如何对一个url字符串分析其中的构成

1. URL对象

url = new URL(url, [base])

 

案例

var url_0 = new URL("/test/a", "http://blog.uproject.cn")
var url_1 = new URL("http://blog.uproject.cn/test/a?p=1#/abc")
//host: "blog.uproject.cn"
//hostname: "blog.uproject.cn"
//origin: "http://blog.uproject.cn"
//password: ""
//pathname: "/test/a"
//port: ""
//protocol: "http:"
//search: ""
//searchParams: URLSearchParams {}
//username: ""
//hash: "#/abc"
//href: "http://blog.uproject.cn/test/a?p=1#/abc"
//search: "?p=1"

配合 URLSearchParams

var url = new URL('https://blog.uproject.cn?foo=1&bar=2');

var params = new URLSearchParams(url.search);

console.log(params.get("foo")) // 1

 

注: ie11及以下不支持

2. 使用a标签

 function _resolveUrl(url) {
    const link = document.createElement('a');
    link.href = url;
    for(let i in link) { console.log(i + "=" +link[i])}
}
_resolveUrl("http://uproject.cn/a?p=1#/a/d")
// 包含以下属性
//href=http://uproject.cn/a?p=1#/a/d
// origin=http://uproject.cn
// protocol=http:
// username=
// password=
// host=uproject.cn
// hostname=uproject.cn
// port=
// pathname=/a
// search=?p=1
// hash=#/a/d

注: 测试chrome支持,其他浏览器未测试, 建议使用时通过属性鉴别是否支持

 

3.使用正则解析

详见解析URL


标题:如何对一个url字符串分析其中的构成
作者:hugh0524
地址:https://blog.uproject.cn/articles/2019/07/26/1564110374675.html