Как удалить переменные 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
верно?