我正在研究这个问题,但我找不到任何可靠的答案来达到这个目的。假设我有一个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
的根任何人都可以帮我解决这个问题吗?我完全迷失了。
答案 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.host
或location.hostname
。但是,您想从完整的字符串中提取它们而不是从当前的URL中提取它们吗?
我再次阅读了这个问题,似乎你想得到的字符串包括:
location.protocol + "//" + location.host + location.pathname
正确?