JavaScript, как переключить путь свойства window.location и перенаправить

Я хочу перенаправить пользователя с разных URL-адресов на конкретный. Я пробовал различные варианты замены, и я, кажется, не могу получить поведение, которое я хочу. Этот код работает, за исключением того, что я предоставляю имя хоста. Я хочу использовать существующее имя хоста из windows.location.hostname и просто указать новый путь. Иногда URL-адреса различаются по размеру и косой черты ('/').

window.location = 'http://localhost:36065/NewPath';

Как бы я изменил эти URL?

http://somesite.com/xxx/yyy/zzz to http://somesite.com/NewPath
http://somesite.com/xxx/yyy to http://somesite.com/NewPath
http://somesite.com/xxx to http://somesite.com/NewPath

Я думаю, вы поняли. Путь может варьироваться в зависимости от пути, я хочу заменить все после.com в основном на "NewPath"

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

3 ответа

Решение
location.pathname = '/newpath.html'

Вы всегда можете использовать различные location Свойства для воссоздания нужной детали и добавления новой детали:

window.location = location.protocol + "//" + location.hostname + "/NewPath";

Просто чтобы показать трудный путь:

// Find everything up to the first slash and save it in a backreference
regexp = /(\w+:\/\/[^\/]+)\/.*/;

// Replace the href with the backreference and the new uri
newurl = windows.location.href.replace(regexp, "$1/dir/foo/bar/newpage.html");
Другие вопросы по тегам