4

我需要页面上的 JS 来检查引荐来源 - 上一页 - 是否来自同一个域。

带有 JS 的页面的 URL 格式如下:

http://subdomain.site.com/dir/page?vs=123456

可能有多个以前的页面。因此,JS 需要检查域是否匹配。

如果域不同,我想将用户发送到另一个页面。

这就是我试图开始的工作:

var matchHost = /^https?:\/\/.*\//;
var match = matchHost.exec(document.referrer);
var domain = "http://subdomain.site.com/dir/";   

if (match !== domain) {
window.location.href = domain;
}

但并不完全奏效。

有任何想法吗?

4

2 回答 2

1

您可能根本不需要正则表达式。您知道您的域的字符长度,例如使用 url http://example.com计算字符,然后根据推荐的 url 域长度拆分字符串,然后将其与您的域 url 进行比较!就是这样。

于 2012-11-23T00:00:25.530 回答
1

在您的情况下match是匹配字符串的数组。所以永远不会平等。你需要比较match[0]

if (match.length== 0 || match[0]!== domain) ...

或者你可以通过这样做完全避免正则表达式:

if (document.referrer.substr (0, domain.length).toLowerCase()!== domain) ...
于 2012-11-23T00:06:50.190 回答