如何使用javascript / jquery从URL中删除get变量和文件名?

时间:2012-02-04 22:21:27

标签: javascript jquery regex url variables

我正在研究这个问题,但我找不到任何可靠的答案来达到这个目的。假设我有一个URL ...

http://mysite.com/stuff/index.php?search=my+search

如何获取此网址并删除index.php?search = my + search,以便它只是http://mysite.com/stuff/?基本上我只想获取没有文件名的父URL或获取变量......无论URL是什么(因此我不必为每个我想要使用它的页面自定义函数)

所以另外一个例子,如果只是......

http://mysite.com/silly.php?hello=ahoy

我只想返回http://mysite.com

的根

任何人都可以帮我解决这个问题吗?我完全迷失了。

4 个答案:

答案 0 :(得分:17)

尝试使用lastIndexOf("/")

var url = "http://mysite.com/stuff/index.php?search=my+search";
url = url.substring(0, url.lastIndexOf("/") + 1);
alert(url); // it will be "http://mysite.com/stuff/"

OR

var url = "http://mysite.com/silly.php?hello=ahoy";
url = url.substring(0, url.lastIndexOf("/") + 1);
alert(url); // it will be "http://mysite.com/"

答案 1 :(得分:2)

如果您的网址位于str

newstr = str.replace(/\/[^\/]+$/,"");

newstr现在包含最多但不包括字符串中最后一个/的路径。要保留最终/,请使用:

newstr = str.replace(/\/[^\/]+$/,"/");

答案 2 :(得分:2)

拆分为“/”,丢弃最后一块,将它们连接起来,添加尾部斜杠。

var path = location.href.split('/');
path.pop();
path = path.join("/") + "/";

答案 3 :(得分:0)

您正在寻找location.hostlocation.hostname。但是,您想从完整的字符串中提取它们而不是从当前的URL中提取它们吗?

我再次阅读了这个问题,似乎你想得到的字符串包括:

location.protocol + "//" + location.host + location.pathname

正确?