2012-02-20 52 views
0

我试图做的下一件事:如果URL中包含该文件夹+随机归档

if (document.referrer=="http://host.com/folder1/*.html"){ 
    alert('True'); 
} 

所以我想要做的是,如果脚本检测我们对文件夹1显示一个警告,不管档案。 *(星号)是执行它,不管它有什么名字。但我真的不知道该怎么做,显然上面的例子不起作用。

任何想法?

回答

2

基本上你是想测试,如果变量document.referrer开始与http://host.com/folder1,所以你可以使用以下命令:

if (document.referrer.indexOf('http://host.com/folder1')==0){ 
    alert('True'); 
} 
+0

这是我需要的。谢谢胺。 – 2012-02-20 19:18:26

1

试试这个:

if (document.referrer.match("http://host.com/folder1/[^/]+\.html")) 

在这里看到更多:

这里有一个的jsfiddle你可以玩:

的代码是:

var ref = "http://host.com/folder1/abc.html"; 
var ref1 = "http://host.com/folder1/abc.xml"; 
var ref2 = "http://host.com/folder1/qq/abc.html"; 

if (ref.match("http://host.com/folder1/[^/]+\.html")) { 
    $('#msgs').text('matches!'); 
} else { 
    $('#msgs').text('doesn\'t match...'); 
} 

如果您在if(...)使用ref,它将匹配,但ref1ref2将不匹配。

+0

很有教育意义。非常感谢。 – 2012-02-20 19:17:40

+0

当然,谢谢! – 2012-02-20 19:21:27

0

也许补充一点:

if (typeof String.prototype.startsWith != 'function') { 
    String.prototype.startsWith = function (str){ 
    return this.indexOf(str) == 0; 
    }; 
} 

然后,你可以这样做:

if (document.referrer.startsWith("http://host.com/folder1/")){ 
    alert('True'); 
} 
1

您可以使用该test()功能和regular expression

if (/http:\/\/host\.com\/folder1\/.*\.html/.test(document.referrer)){ 
    alert('True'); 
} 

indexOf()功能:

if (document.referrer.indexOf("http://host.com/folder1/") == 0) 

    alert('True'); 
} 

请注意,第二种方法不检查.html扩展名。

+0

就像我需要的魅力一样。谢谢。 – 2012-02-20 19:17:55