You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用jQuery从location.href中删除/之后的末尾冗余锚点内容?

现有代码问题说明

你调用url_id.split('#')[1]仅返回step_4的原因是:split('#')会把完整URL按所有#切割为数组,你的示例URL切割后的结构为["https://localhost/test-project/", "step_4", "step_4", "step_4"],索引为1的项就是第一个#后的第一段内容,自然仅输出step_4。


基于window.location.href的实现方案

直接取切割后数组的第一项即可得到你需要的不带hash的基础路径:

var url_id = window.location.href;
var baseUrl = url_id.split('#')[0];
console.log(baseUrl); // 输出 https://localhost/test-project/

如果需要兼容URL中同时存在查询参数和hash的场景,也可以用正则匹配替换所有hash内容,无论后面有多少个重复的#step_4都可以一次性移除:

var baseUrl = window.location.href.replace(/#.*/, '');

其他更可靠的实现方式

浏览器原生window.location对象内置了专用属性,不需要手动切割字符串,稳定性更高,不会因为URL中存在特殊字符导致切割出错:

  • 如果你需要保留查询参数(即?后面的内容)仅移除hash:
var baseUrl = window.location.origin + window.location.pathname + window.location.search;
  • 如果你不需要保留查询参数,只需要基础路径:
var baseUrl = window.location.origin + window.location.pathname;

内容的提问来源于stack exchange,提问作者Jignesh Panchal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 14:18:01