Как удалить переменные get и имя файла из URL с помощью javascript / jquery?

Я изучал эту проблему, но я не мог найти никаких твердых ответов для этой конкретной цели. Допустим, у меня есть URL...

http://mysite.com/stuff/index.php?search=my + поиск

Как я могу захватить этот URL и удалить индекс.РНР?search=my + search от него, так что это будет простоhttp://mysite.com/stuff/ ? В основном я просто хочу захватить Родительский URL без имени файла или получить переменные... Независимо от того, какой URL (поэтому мне не нужно настройте функцию для каждой страницы, на которой я хочу ее использовать)

Так, например, если бы это было просто...

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

Я просто хотел бы вернуть корень http://mysite.com

может ли кто-нибудь помочь мне разобраться в этом? Я совсем запутался.

4 ответов


попробуйте использовать 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/"

или

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

если Ваш url находится в str:

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

newstr Теперь содержит путь до, но исключая последний / в строке. Чтобы сохранить окончательный / использовать:

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

разделить на"/", отбросить последнюю часть, соединить их обратно, добавить косую черту.

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

вы ищете location.host или location.hostname. Но вы хотите извлечь их из полной строки, а не из текущего URL-адреса?

Я прочитал вопрос еще раз и кажется, что вы хотите получить строку, которая состоит из:

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

верно?