var orig = document.referrer; // Incoming URL
var check = new RegExp("boxes", "gi"); // Literal string, global + case insensitive.
// console.log(check);
if (orig.indexOf(check) > -1) {
console.log('you came from the box section');
} else {
console.log('you DIDNT come the box section');
}
大家好,
我在网站上有一个“框”类别,其中所有框项在URL中都有“框”。来自另一个类别的特定项目需要能够检查用户是否来自“盒子”项目。 (这是一个临时解决方案,因为我只有皮肤级别的访问权限。)
登录'check'时,我得到'/ boxes / gi',当在indexOf中进行检查时,它应该是有效的正则表达式字符串。
我不太确定为什么我不能对此进行正确检查,因为结果只能是用户并非来自“框”部分。
我有很多东西要学习,所以在此之前,我非常感谢您的帮助。
谢谢!
答案 0 :(得分:0)
您可以使用字符串变量代替正则表达式
var orig = document.referrer; // Incoming URL
// console.log(check);
if (orig.indexOf("boxes") > -1) {
console.log('you came from the box section');
} else {
console.log('you DIDNT come the box section');
}
答案 1 :(得分:0)
indexOf
不接受正则表达式作为参数。您可以将正则表达式与search
一起使用,或者将indexOf
与字符串一起使用。
orig.toLowerCase().indexOf("box") > -1
// or
orig.search(check) > -1
答案 2 :(得分:0)
您可以将match()
与regex
一起使用来执行逻辑。
$(document).ready(function(){
var url = "www.someurl.com/boxes/gi/abc";
var regex = /\/boxes\/gi/g;
var mtch = url.match(regex);
if(mtch !== null){
alert('url has the value');
}
else{
alert('url does not have the value');
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 3 :(得分:0)
您可以将引荐来源网址解析为link元素并检索其路径名。您可能还应该检查主机名,以确保它来自您自己的站点:
var url = document.createElement('a');
url.href = document.referrer;
var comingFromBoxes = url.hostname === 'yoursite.com' && url.pathname.indexOf('/boxes') === 0;
注意:引荐来源无论如何都不是一个可靠的值,因此不应被视为
。