搜故事,从300万个故事到海量知识百科的华丽转变!

如何在JavaScript中解析URL

时间:2011-12-15

URL 告知了我们资源的地址以及获取它们的方式http, ftp, mailto

提示:本文共有 1263 个字,阅读大概需要 3 分钟。

URL 是 Uniform Resource Locator 的缩写,指的是一个网络资源的地址(网页,图片,文件等)。URL 告知了我们资源的地址以及获取它们的方式(http, ftp, mailto)。

在 JavaScript 中解析 URL 一种快捷的方式是使用 URL API。目前已经在现代浏览器中得到了广泛支持。

在本文中我们将介绍如何使用 URL API 来解析一个 URL 以及它的组件。

URL 结构

我们首先介绍一下一个 URL 的构成部分,这将有助于我们理解接下来的内容。

URL() 构造函数

使用 URL() 构造函数可以解析一个 URL 的组件。

url 参数可以是绝对路径也可以是相对路径,如果第一个参数是相对路径,则第二个参数 base 是必需的,需要填写一个绝对的路径作为基础 URL。

基础使用例子如下:

URL() 实例的 href 属性会返回完整的 URL 字符串。

在创建了 URL() 实例之后,我们就可以访问它的 URL 组件了。如下是 URL() 实例的接口:

解析查询字符串

url.search 属性可以访问 URL 的查询字符串,它的值以问号开头。如果没有查询字符串,则 url.search 会返回一个空字符串。

获取单个查询参数也非常方便,这时我们可以使用 url.searchParams 属性。它指向一个 URLSearchParams 实例。

URLSearchParams 对象提供了许多方法来获取查询字符串参数,如 get(), has() 等。

我们来看一个例子:

url.searchParams.get(‘message’) 返回了 message 查询字符串的值 ‘hello’,而访问不存在的参数 url.searchParams.get(‘missing’) 返回了 null。

hostname

url.hostname 返回 URL 的域名:

pathname

url.pathname 返回 URL 的路径名:

如果 URL 没有路径,则 url.pathname 属性返回一个斜线:

hash

最后,可以用 url.hash 属性来访问 hash。如果 URL 中没有 hash,则返回一个空字符串:

URL 校验

使用 new URL() 构造函数创建实例时,有个额外的作用,它会校验 URL 是否合规。如果 URL 的值无效,会抛出一个 TypeError。

URL 操作

除了可以读取 URL 组件,部分属性如 search, hostname, pathname, hash 是可写的,也就意味着我们可以操作 URL 修改它的组件。

例如,我们可以修改一个 URL 的域名如下:

注意URL实例的属性中只有 origin 和 searchParams 是只读的。所有其他属性都是可读可写的。

总结

URL() 构造函数是在 JavaScript 中解析和校验 URL 的快捷方式,目前已经在现代浏览器得到了广泛支持。使用它可以加速你的项目开发过程,使用原生的 API 也意味着获得性能的提升。

看到此处说明本文对你还是有帮助的,关于“如何在JavaScript中解析URL”留言是大家的经验之谈相信也会对你有益,推荐继续阅读下面的相关内容,与本文相关度极高!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
网页的神笔马良 JavaScript的发展历程

网页的神笔马良 JavaScript的发展历程

语言,网页,浏览器,网景,网景公司,网页浏览器,问题,公司,内容,图形,版本,程序员,资源,发展,进步,艾克,超文本标记语言,万维网,制造商,协会,历史,图片,图文,文章,市场,欧洲,环境,网络,缺失,脚本语言

2017-08-22 #短篇故事

入门指南:修改别人的H5网页和网站的JavaScript

入门指南:修改别人的H5网页和网站的JavaScript

代码,网站,网页,需要修改,功能,工具,情况,修改后,断点,行为,目标代码,进行修改,利益,区域,文件,浏览器,法律责任,结构,可以通过,帮助你,在进行,作者,函数,备份,权限,所有者,管理员,步骤,法律,运行

2024-01-25 #综合

如果你想学好JavaScript 那这几本书一定是你必不可少的!

如果你想学好JavaScript 那这几本书一定是你必不可少的!

这本书,建议,问题,前端,书籍,高程,数据结构,场景,语法,设计模式,语言,告诉你,函数,原理,同学,大部分,是一本,冷门,思路,功能,字典,实际,工具书,开发方式,成就,成就感,时候,浏览器,程序员,级别

2011-03-02 #小故事

「首席架构师推荐」一系列很棒的的浏览器端JavaScript库资源(2)

「首席架构师推荐」一系列很棒的的浏览器端JavaScript库资源(2)

模板,框架,语言,模板引擎,平台,内容,功能,应用程序,反应式,博客,实时,字符串,架构,编辑,程序,社交,爱好者,浏览器,编译器,网站,编辑器,服务,设计,发布平台,和博客,实时应用,功能强大,嵌入式

2016-01-26 #长篇故事

如何在故事会栏目投稿并获得稿?如何在故事会 – 手机爱问

如何在故事会栏目投稿并获得稿?如何在故事会 – 手机爱问

2020-04-13 #故事大全

如何在故事会栏目投稿并获得稿?如何在故事会 – 手机爱问

如何在故事会栏目投稿并获得稿?如何在故事会 – 手机爱问

2020-06-20 #经典故事

东方故事如何在多宝阁卖?东方故事如何在多宝阁卖号 爱问知识人

东方故事如何在多宝阁卖?东方故事如何在多宝阁卖号 爱问知识人

寄售,商品,多宝阁,角色,公示期,交易,公示,时间,绑定,坐骑,宠物,支付宝,等级,考察期,装备,货款,道具,金钱,该商品,才可,交易中心,人民币,价格,卖家,单笔,变异,天后,宝宝,手机,平台

2020-06-07 #长篇故事

如何在投产之前卖掉产品韩剧如何讲故事书评

如何在投产之前卖掉产品韩剧如何讲故事书评

故事,项目,中提,编剧,核心,电视剧,韩剧,风格化,风格,人物设定,人和市场,通篇,感觉,作品,人物,内容,依据,信息,前瞻,剧情简介,剧情,基础架构,实例,年代,平台,影视剧,引人,新人,成品,戏剧化

2020-08-04 #经典故事