如何用JavaScript获取不含主机的完整URL?示例链接提取方法咨询
如何用JavaScript获取不含主机部分的完整URL路径
嘿,这个需求其实很好实现,JavaScript里有两种常用的方式,我给你详细拆解下:
方法一:利用当前页面的window.location属性
如果是要获取当前页面URL中除主机外的部分,可以直接组合location对象的三个核心属性:
pathname:URL的路径部分(比如示例里的/sub/sub)search:URL的查询参数部分(比如示例里的?a=1)hash:URL的锚点部分(比如示例里的#f)
把它们拼接起来就是你要的内容,代码示例:
const fullPath = window.location.pathname + window.location.search + window.location.hash; console.log(fullPath); // 针对示例URL会输出 "/sub/sub?a=1#f"
方法二:使用URL对象(推荐,支持任意URL)
如果你需要处理的不是当前页面的URL,而是任意给定的链接,那URL对象绝对是最优解——它能帮你精准解析URL的各个组成部分,不用自己手动字符串截取。
针对你给出的示例链接https://example.com:3000/sub/sub?a=1#f,代码如下:
// 创建URL实例 const url = new URL('https://example.com:3000/sub/sub?a=1#f'); // 组合需要的部分 const targetPath = url.pathname + url.search + url.hash; console.log(targetPath); // 输出 "/sub/sub?a=1#f"
这个方法的优势在于,不管URL里有没有端口号、查询参数或者锚点,都能准确提取出主机之后的全部内容,而且现代浏览器都支持,兼容性拉满。
内容的提问来源于stack exchange,提问作者omega
相关产品推荐
相关产品推荐

