Как удалить переменные get и имя файла из URL, используя javascript / jquery? - PullRequest
8 голосов
/ 05 февраля 2012

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

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

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

Так что для дополнительного примера, если бы это было просто ...

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

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

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

Ответы [ 4 ]

17 голосов
/ 05 февраля 2012

Попробуйте использовать 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/"
2 голосов
/ 05 февраля 2012

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

var path = location.href.split('/');
path.pop();
path = path.join("/") + "/";
2 голосов
/ 05 февраля 2012

Если ваш URL находится в str:

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

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

newstr = str.replace(/\/[^\/]+$/,"/");
0 голосов
/ 05 февраля 2012

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

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

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

право

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...