我有以下带有正则表达式的JS:
var ref = document.referrer;
if (ref.match(/^https?:\/\/([^\/]+\.)?sporedev\.ro\:\/index.html(\/|$)/i)) {
alert("Came from index");
}
我尝试做的是,如果引荐来源是网站的索引页面,或者引荐来源不是网站的基本域,则不显示HTML的一部分。
我一直在研究这个正则表达式,修改我在SO上找到的一个,在域名后添加index.html。
这是最初的脚本:
if (ref.match(/^https?:\/\/([^\/]+\.)?reddit\.com(\/|$)/i)) {
alert("Came from reddit");
}
如何正确添加" index.html"在这个正则表达式中如何创建另一个条件来检查不同的基本URL?
答案 0 :(得分:1)
在这种情况下,尝试采用最简单的方法。您可以使用includes而不是使用正则表达式。例如:
if (ref.includes('index.html') {
//do something
}
如果你真的想使用正则表达式,那么请考虑一些简单的事情:
if (/index\.html/.test(ref)) {
//do something
}
关于域的匹配,我认为将域名列表放在一个数组中可能是一个很好的方法,所以你可以这样做:
const domains = ['https://foo.com', 'https://bar.com'];
if (domains.indexOf(ref) > -1) {
//do something
}
然后,您可以将这些方法与以下内容结合起来:
const domains = ['https://foo.com', 'https://bar.com'];
const fromIndex = ref.includes('index.html');
const fromDomainList = domains.indexOf(ref) > -1;
if (fromIndex || fromDomainList) {
//do something
}