Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как удалить знаки в ссылке? (https://javascript.ru/forum/misc/79045-kak-udalit-znaki-v-ssylke.html)

gad3005 10.12.2019 11:27

Как удалить знаки в ссылке?
 
Здравствуйте, помогите пожалуйста разобраться, есть вот такая конструкция вывода ссылки на сайте. И для правильной работы нужно чтобы в ссылке удалялось все до знака "/"
Вот пример что нужно удалять в ссылке https://site.com/menu/kompleksni-obidi
document.location.href=document.location.pathname+'?scr_change_date='+$('#scr_date').val();


Если можно напишите пожалуйста как удалить до знака "/" и как с ним вместе.
Всем заранее спасибо за помощь! :)

laimas 10.12.2019 11:34

Это не до, а после, и если после добавляется параметр запроса '?scr_change_date='+$('#scr_date').val();, то и он будет удален. Или же в ссылках нужно удалить только "kompleksni-obidi"? Значит нужно это просто вырезать из document.location.pathname:

document.location.pathname.replace('kompleksni-obidi', '')

gad3005 10.12.2019 12:00

Цитата:

Сообщение от laimas (Сообщение 517230)
Это не до, а после, и если после добавляется параметр запроса '?scr_change_date='+$('#scr_date').val();, то и он будет удален. Или же в ссылках нужно удалить только "kompleksni-obidi"? Значит нужно это просто вырезать из document.location.pathname:

document.location.pathname.replace('kompleksni-obidi', '')

Дело в том что это раздел сайта, и нужно чтобы в других разделах удаляло их название. Поэтому я и написал что до знака / должно удалять. Не подскажите как это реализовать?

laimas 10.12.2019 12:14

Цитата:

Сообщение от gad3005
Не подскажите как это реализовать?

Что именно? Мне же откуда знать, что содержат разделы вашего сайта. Во-первых, почему этим должен заниматься клиент, а не сервер формируя ссылки, формировать их без излишеств? Во-вторых, пусть сервер так коряво выдает путь, и этот путь может иметь различное количество вхождений, в котором нужно всегда удалять последнее?

Если да, то тогда разделять путь по "/", затем срез этого массива от 0 до -1 соединять по "/". Конкретные примеры приведите путей в таком случае, либо отметьте, что как раз "во-вторых" и есть. Иначе ваш вопрос похож на резину. )

gad3005 10.12.2019 12:54

Цитата:

Сообщение от laimas (Сообщение 517233)
Что именно? Мне же откуда знать, что содержат разделы вашего сайта. Во-первых, почему этим должен заниматься клиент, а не сервер формируя ссылки, формировать их без излишеств? Во-вторых, пусть сервер так коряво выдает путь, и этот путь может иметь различное количество вхождений, в котором нужно всегда удалять последнее?

Если да, то тогда разделять путь по "/", затем срез этого массива от 0 до -1 соединять по "/". Конкретные примеры приведите путей в таком случае, либо отметьте, что как раз "во-вторых" и есть. Иначе ваш вопрос похож на резину. )

Вот все разделы сайта где используется этот скрипт:
http://wow/menu/napitki
http://wow/menu/menju-desertov
http://wow/menu/menju-varenikov
http://wow/menu/vilnij-vibir-strav
http://wow/menu/kompleksni-obidi

Везде до / нужно стереть, чтобы корректно работал скрипт дальше. В принципе меня устроит и жесткое условие с массивом этих разделов, но хотелось бы понять как стереть ссылку до конкретного знака "/".
Извините за неопытность в изложении всей проблемы)

laimas 10.12.2019 13:08

location.pathname возвращает начиная с перового после домена слеша. Если удалять последнее вхождение в нем, то должно получаться как?:

а) http://wow/menu/?scr_change_date=2019-12-12

б) http://wow/menu?scr_change_date=2019-12-12

ksa 10.12.2019 14:11

Цитата:

Сообщение от gad3005 (Сообщение 517236)
Вот все разделы сайта где используется этот скрипт:
http://wow/menu/napitki
http://wow/menu/menju-desertov
http://wow/menu/menju-varenikov
http://wow/menu/vilnij-vibir-strav
http://wow/menu/kompleksni-obidi
...
хотелось бы понять как стереть ссылку до конкретного знака "/".

Как вариант...

var url='http://wow/menu/menju-varenikov';
url=url.replace(/[^\/]*$/,'');
alert(url);

gad3005 10.12.2019 16:56

Вариант б)

gad3005 10.12.2019 16:56

Спасибо!


Часовой пояс GMT +3, время: 18:04.