让我解释一下我的意思:
我想从https://example.net/category/83745/my-first-post重定向到https://myredirect.net/my-first-post,但不考虑/ category / numbers /
此刻我正在使用它:
if(window.location.pathname == '/category/83745/my-first-post')
{
window.location.href="https://myredirect.net/my-first-post";
}
它工作正常,但是正如我所描述的,我需要删除/ category / numbers /,因为它们可能有所不同,并且仅考虑 / my-first-post 这部分进行重定向。>
谢谢。
答案 0 :(得分:1)
您可以使用String的方法lastIndexOf
和slice
:
var path = window.location.pathname;
window.location.href = "https://myredirect.net" + path.slice(path.lastIndexOf('/') + 1);
答案 1 :(得分:-1)
您可以在路径名上运行正则表达式匹配
if(window.location.pathname.match(/my-first-post$/)) {
window.location.href='/my-first-post';
}
有关正则表达式的更多信息:https://www.regular-expressions.info/
另一个用于构建和测试正则表达式的好工具:https://regex101.com/
答案 2 :(得分:-1)
使用正则表达式。
if(window.location.pathname.match(/\/category\/\d+\/my\-first\-post$/)
{
window.location.href="https://myredirect.net/my-first-post";
}
答案 3 :(得分:-1)
如果您只想动态地忽略前两个部分,而只关心URL的最后一部分,那么请执行以下操作:
var stringContains = function (str, partial){
return (str.indexOf(partial) > -1);
};
var url = '/category/83745/my-first-post';
if(stringContains(url, "/category")){
var parts = a.split("/");
window.location.href = parts[parts.length-1];
}