Удалить последний каталог по URL-адресу
Я пытаюсь удалить последнюю часть каталога URL. Мой URL-адрес выглядит следующим образом:
https://my_ip_address:port/site.php?path=/path/to/my/folder
.
При нажатии на кнопку я хочу изменить это на
https://my_ip_address:port/site.php?path=/path/to/my
. (Удалите последнюю часть).
Я уже пробовал window.location.replace(/\/[A-Za-z0-9%]+$/, "")
, что приводит к
https://my_ip_address:port/undefined
.
Какое регулярное выражение следует использовать для этого?
Ответы
Ответ 1
Объяснение: Explode by "/", удалите последний элемент с pop, снова присоединитесь к "/".
function RemoveLastDirectoryPartOf(the_url)
{
var the_arr = the_url.split('/');
the_arr.pop();
return( the_arr.join('/') );
}
см. скрипку http://jsfiddle.net/GWr7U/
Ответ 2
С помощью этого кода удалите последний элемент из URL-ссылки.
url.substring(0, url.lastIndexOf('/'));
Ответ 3
Вот код, который корректно обрабатывает /
, "", foo
и /foo
(возвращая /
, "", foo
и /
соответственно):
function parentDirectory(dir: string): string {
const lastSlash = dir.lastIndexOf('/');
if (lastSlash === -1) {
return dir;
}
if (lastSlash === 0) {
return '/';
}
return dir.substring(0, lastSlash);
}
Просто удалите :string
для Javascript. Может быть, вы хотите другое поведение, но вы должны хотя бы рассмотреть эти крайние случаи.