如果url包含此文件夹+随机存档

时间:2012-02-20 19:04:51

标签: javascript

我试图做下一件事:

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

所以我想要做的是在脚本检测到我们在文件夹1上时显示警告,无论存档。 *(星号)是执行它而不管它有什么名称。但我真的不知道该怎么做,显然上面的例子不起作用。

有什么想法吗?

4 个答案:

答案 0 :(得分:2)

基本上,您正在尝试测试变量document.referrer是否以http://host.com/folder1开头,因此您可以使用以下内容:

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

答案 1 :(得分: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...');
}

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

答案 2 :(得分: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扩展名。

答案 3 :(得分: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');
}