Javascript - 如何从location.href中删除域

Mar*_*rta 33 html javascript jquery

我需要使用Javascript从location.href中删除域名.我有类似的链接:http://localhost/App/User/UserOrder.aspx?id=949abc91-a644-4a02-aebf-96da3ac7d8e1&type=MO我需要没有链接http://localhost,将来没有真正的域名.

我将在Javascript函数中使用这些trimed链接,所以我想在Javascript中修剪它.

我试过了:window.location.href.split('/')[2];但我只能获得域名形式.我想摆脱域名.

任何帮助在这里非常感谢!

Viv*_*ath 94

使用window.location.pathname.这为您提供了相对于主机的路径.有关详细信息,请参见此处

对于任何任意URL,假设变量url包含您的URL,您可以执行以下操作:

url = url.replace(/^.*\/\/[^\/]+/, '')
Run Code Online (Sandbox Code Playgroud)

  • 块 [^\/] 不需要转义,因此可以是 [^/] (4认同)

Dan*_*ett 13

window.location.href您可以使用其他属性,window.location而不是对字符串进行操作.在您的情况下,您需要路径名,搜索和哈希:

console.log(window.location.pathname + window.location.search + window.location.hash);
Run Code Online (Sandbox Code Playgroud)


aln*_*h29 8

我在你的另一个问题上发布了这个评论作为评论,但我也可以在这里添加它.您可以使用正则表达式替换,如下所示:

location.href.replace(/.*\/\/[^\/]*/, '')


aeu*_*aeu 6

自 2011 年发布原始答案以来,情况发生了一些变化。现在您可以使用 URL Web API。

https://developer.mozilla.org/en-US/docs/Web/API/URL

针对你的问题,代码如下:

let dummy_url = new URL("http://localhost/App/User/UserOrder.aspx?id=949abc91-a644-4a02-aebf-96da3ac7d8e1&type=MO");
console.log( "pathname : " + dummy_url.pathname );
console.log( "search   : " + dummy_url.search );
console.log( "both     : " + dummy_url.pathname + dummy_url.search );
        
Run Code Online (Sandbox Code Playgroud)

生成以下输出。

pathname : /App/User/UserOrder.aspx
search   : ?id=949abc91-a644-4a02-aebf-96da3ac7d8e1&type=MO
both     : /App/User/UserOrder.aspx?id=949abc91-a644-4a02-aebf-96da3ac7d8e1&type=MO
Run Code Online (Sandbox Code Playgroud)

组合的路径名和搜索字段就是您想要的。

截至 2021 年 11 月,除 IE 和 Opera Mini 外,所有版本均可用。