Я изучал эту проблему, но я не мог найти надежных ответов для этой конкретной цели. Допустим, у меня есть 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
Может кто-нибудь помочь мне разобраться? Я полностью потерян.
Попробуйте использовать lastIndexOf("/"):
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/"
разделить на "/", отбросить последний кусок, присоединить их обратно, добавить косую черту.
var path = location.href.split('/'); path.pop(); path = path.join("/") + "/";
Если ваш URL находится в str:
str
newstr = str.replace(/\/[^\/]+$/,"");
newstr теперь содержит путь до, но исключая последний / в строке.Чтобы сохранить финал /, используйте:
newstr
/
newstr = str.replace(/\/[^\/]+$/,"/");
Вы ищете location.host или location.hostname. Но хотите ли вы извлечь их из полной строки, а не из текущего URL?
location.host
location.hostname
Я прочитал вопрос еще раз, и, кажется, вы хотите получить строку, состоящую из:
location.protocol + "//" + location.host + location.pathname
право