javascript 如何切换 window.location 属性的路径名并重定向

发布于 2024-12-10 04:14:54 字数 556 浏览 0 评论 0原文

我想将用户从不同的网址重定向到特定的网址。我尝试过各种风格的替换,但似乎无法获得我想要的行为。除非我提供主机名,否则此代码有效。我想使用 windows.location.hostname 中的现有主机名并仅提供新的路径名。有时,网址的大小和斜线(“/”)会有所不同。

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

我该如何更改这些网址?

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

我想你明白了。路径可能会有所不同,我想基本上用“NewPath”替换 .com 之后的所有内容,

如果可能的话,我想要一个干净的正则表达式解决方案,但我是该部门的菜鸟。感谢您提供任何提示或技巧。

I want to redirect a user from varying urls to a specific one. I've tried various flavors of replacing and I cant seem to get the behavior I want. This code works except I'm providing the hostname. I want to use the existing hostname from windows.location.hostname and just provide a new pathname. Sometimes the urls vary in size and slashes ('/').

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

How would I change these urls?

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

I think you get the point. The path can vary in paths, I want to replace everything after .com basically with 'NewPath'

I'd like a clean regex solution if possible but I am quite the rookie in that dept. Thanks for any tips or tricks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不奢求什么 2024-12-17 04:14:54
location.pathname = '/newpath.html'
location.pathname = '/newpath.html'
始于初秋 2024-12-17 04:14:54

您始终可以使用各种location属性来重新创建您需要的部分并将新部分附加到其中:

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

You could always use the various location properties to recreate the part you need and append the new part to it:

window.location = location.protocol + "//" + location.hostname + "/NewPath";
吻风 2024-12-17 04:14:54

只是为了展示困难的方法:

// 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");

Just to show the hard way:

// 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");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文