【问题标题】:javascript url redirect with regex使用正则表达式的 javascript url 重定向
【发布时间】:2015-03-19 22:25:20
【问题描述】:

当 URL 与某个正则表达式不匹配时,我想重定向。

我们的一个客户与一家非常阴暗的 SEO 公司 - ReachLocal 签订了合同。他们将他们的 adwords 活动发送到我们的网站。使用 js 更改一些关键信息,如电话号码、mailto-info、分析 onclick 推送,...

因为我们的网站显示在另一个 url 中,所以必须可以在源代码中有一个脚本来检查 url 并在其他域上重定向。

这是我目前得到的:

<script type="text/javascript">
var url = window.location.href;
if (url.match(/rtrk\.be/);) {        => the use domain rtrk.be
window.location.href = 'http://example.com'; 
}
</script>

我不是很喜欢 js,所以非常感谢您的帮助。

【问题讨论】:

  • if 中打错字,不要在if (url.match(/rtrk\.be/)) 那里放分号
  • 学习使用开发者控制台。它会记录你的错误
  • 你应该使用 !操作员。还有@Nano,我认为这应该是一个答案而不是评论。
  • @Cyber​​Fox 我认为这个错字不值得回答:S

标签: javascript regex redirect


【解决方案1】:

你把分号弄错了。

你有什么理由不使用“contains()”?无论如何,这是我的答案。

if(location.href.contains("rtrk.be")==false)
    location.href = "punk.com";

【讨论】:

  • 在本地像魅力一样工作,但不能从 SearchLocal url 重定向。如果你想看看我在说什么:在谷歌中输入“bermax”点击“bermaxbvba.be”的广告。
  • 我输入了 rtrk.be 并被重定向到“reachlocal.com/us/en/rtrk.be”。我可以看到这条“contains()”规则有问题。但是进一步查看 location 对象,我发现有一个名为“host”的属性更安全。
  • if(location.host!=="rtrk.be") location.href = "punk.com";
【解决方案2】:

我更喜欢使用测试:

if (!/rtrk\.be/.test(url)) {        => the use domain rtrk.be
    window.location.href = 'http://example.com'; 
}

你的错误:

  • 删除';'来自if语句
  • 您的正则表达式正在检查 url 是否与 rtrk.be 匹配,但您想在 url 不匹配时进行导航,因此您缺少否定(在正则表达式或 if 语句中)

【讨论】:

    猜你喜欢
    • 2015-10-02
    • 2020-03-28
    • 2017-01-05
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    • 2012-03-31
    • 2016-05-14
    相关资源
    最近更新 更多