2014-09-02 2 views
0

Я следующий код, который заменяет текущий URL с помощью JavaScript:Заменить все после последнего символа в URL

window.location.replace(window.location.href.replace(/\/?$/, '#/view-0'));

Однако, если у меня есть URL-адрес, как:

domain.com/#/test или domain.com/#/

Он добавит #/view-0 к текущему хэшу. Я хочу заменить ВСЕ после последней части URL-адреса, включая строки или хэши запросов.

Так что предположим, что мое регулярное выражение не справляется с этим ... Как я могу изменить его, чтобы быть более агрессивным?

ответ

1

следующий синтаксис может помочь:

location.href.replace(/[?#].*$/, '#/view') 

Он заменит все после того, как (и вместе с ним) ? или # в строке с #/view.

+0

Замена работает нормально. Но это больше не вызывает обновление страницы, как мой код ... Любые идеи почему? – Cameron

+0

@Cameron Вы можете попытаться присвоить значение обратно 'location.href', т. Е.' Location.href = location.href.replace (...) '. Он должен выполнить перенаправление на нужный URL. – VisioN

+0

Если URL-адрес уже содержит хэш, а затем я запускаю этот код замены, он видит его как hashchange и поэтому не вызывает полное обновление ... Если я это сделаю: 'window.location.href = window.location .replace (window.location.href.replace (/[?#].*$/, '#/view-0')); 'затем он перенаправляет, но заканчивается на неопределенный URL. – Cameron

Смежные вопросы