gpt4 book ai didi

javascript,如何获取url路径?

转载 作者:行者123 更新时间:2023-11-30 13:30:21 24 4
gpt4 key购买 nike

我想通过javascript获取url路径,
例如,我有这些网址:

http://localhost:8080/blah/blah/index.php?p=1

http://localhost:8080/blah/blah/index.php

http://localhost:8080/blah/blah/

http://localhost:8080/blah/blah

我想得到:http://localhost:8080/blah/blah/任何人都请帮助我

最佳答案

这似乎是一个没有明确解决方案的模棱两可的问题,因为没有具体定义要从 URL 末尾删除的内容。

删除查询参数很容易(第一个示例)。

将尾部斜杠标准化很容易(最后两个示例)。

如果您一直想要删除路径的最后一段,那将很容易,但除非您愿意添加更多规则来区分 /index.php/blah 在 URL 的末尾,以便算法知道何时删除一个,而不是另一个,你所要求的是不可能的。正如您定义的问题,代码无法知道是否http://localhost:8080/blah/blah 末尾的 blah 是否应该删除。

例如,此代码将删除查询参数和 URL 的最后一段,但这仅适用于四个示例中的三个,但最后会遇到关于您要删除的内容的歧义:

function cleanURL(url) {
return(url.replace(/\?.*$/, "").replace(/\/[^\/]*$/, "") + "/");
}

这里它在所有四个示例上运行:http://jsfiddle.net/jfriend00/2Q4Ue/ .它返回四种情况的这些结果:

http://localhost:8080/blah/blah/
http://localhost:8080/blah/blah/
http://localhost:8080/blah/blah/
http://localhost:8080/blah/

对于最后一个 URL,您可以看到算法将末尾的 /blah 识别为文件名并将其删除,因为无法知道它是路径的一部分还是文件名。

如果您愿意制定一个新规则,即文件名必须有文件扩展名,而没有文件名时路径名的最后一段永远不会有扩展名,那么可以编写这样的算法来处理最后一种情况.

好的,有了一个新的规则,文件名末尾是任何带句点的东西,那么,你可以使用这个:

function cleanURL(url) {
return(url.replace(/\?.*$/, "")
.replace(/\/[^\/]*\.[^\/]*$/, "")
.replace(/\/$/, "") + "/");
}

显示在这个 fiddle 中:http://jsfiddle.net/jfriend00/LpauM/并为四个测试 URL 生成以下结果:

http://localhost:8080/blah/blah/
http://localhost:8080/blah/blah/
http://localhost:8080/blah/blah/
http://localhost:8080/blah/blah/

关于javascript,如何获取url路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6990805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com