Javascript 针对推荐人URL字符串的正则表达式检查
大家好 我在一个网站上有一个“盒子”类别,其中所有盒子项目在URL中都有“盒子”。来自其他类别的特定项目需要能够检查用户是否来自“框”项目。(这是一个临时解决方案,因为我只有皮肤级别的访问权限) 当记录“check”时,我会得到“/box/gi”,当在indexOf中进行检查时,它应该是一个有效的正则表达式字符串 我不太清楚为什么我不能正确地检查这个,因为结果只是用户不是来自“框”部分 我有很多东西要学,所以在此之前,我非常感谢任何帮助Javascript 针对推荐人URL字符串的正则表达式检查,javascript,jquery,regex,indexof,Javascript,Jquery,Regex,Indexof,大家好 我在一个网站上有一个“盒子”类别,其中所有盒子项目在URL中都有“盒子”。来自其他类别的特定项目需要能够检查用户是否来自“框”项目。(这是一个临时解决方案,因为我只有皮肤级别的访问权限) 当记录“check”时,我会得到“/box/gi”,当在indexOf中进行检查时,它应该是一个有效的正则表达式字符串 我不太清楚为什么我不能正确地检查这个,因为结果只是用户不是来自“框”部分 我有很多东西要学,所以在此之前,我非常感谢任何帮助 谢谢 可以使用字符串变量而不是正则表达式 var orig
谢谢 可以使用字符串变量而不是正则表达式
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');
}
indexOf
不接受正则表达式作为参数。您可以将正则表达式与search
一起使用,也可以将indexOf
与字符串一起使用
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');
}
您可以使用match()
和regex
来执行逻辑
$(文档).ready(函数(){
var url=“www.someurl.com/box/gi/abc”;
var regex=/\/box\/gi/g;
var mtch=url.match(regex);
如果(mtch!==null){
警报(“url有值”);
}
否则{
警报(“url没有该值”);
}
})
您可以将引用者URL解析为链接元素并检索其路径名。您可能还应该检查主机名,以确保它来自您自己的站点:
orig.toLowerCase().indexOf("box") > -1
// or
orig.search(check) > -1
注意:无论以何种方式,推荐人都不是一个可靠的值,不应被视为可靠的值
var url = document.createElement('a');
url.href = document.referrer;
var comingFromBoxes = url.hostname === 'yoursite.com' && url.pathname.indexOf('/boxes') === 0;