检查任何URL是否为真

时间:2019-06-24 22:00:16

标签: javascript jquery operators

我对Javascript和Jquery还是陌生的,但无法弄清楚我在做什么错。我只想检查用户是否在3个URL中。我只想检查用户是否在ABOUT US,MEMSTAFF TEAM或CAREERS部分中。这就对了。我以为如果我只是使用OR(||)运算符,那应该可以工作。我在做什么错了?

<script type="text/javascript">
$(document).ready(function() {
// Check if any of these relative URLS are true
if(window.location.href.indexOf("/about-us" || "/memstaff-team" || "/careers") > -1) {
// Alert me if I am in one of the MAIN sections
alert("Your are in one of the MAIN sections");
}
});
</script>

2 个答案:

答案 0 :(得分:2)

测试

if (window.location.href.indexOf("/about-us" || "/memstaff-team" || "/careers") > -1)

等效于

temp = "/about-us" || "/memstaff-team" || "/careers";
if (window.location.href.indexOf(temp) > -1)

由于||运算符仅返回第一个真实值,因此它实际上在进行temp = "/about-us"并为此进行测试。 “ OR”表达式不会自动分布,您需要显式进行。

if (window.location.href.indexOf("/about-us") > -1 ||
    window.location.href.indexOf("/memstaff-team") > -1 || 
    window.location.href.indexOf("/careers") > -1)

但是更简单的方法是使用正则表达式:

if (window.location.href.match(/\/(about-us|memstaff-team|careers)/))

答案 1 :(得分:0)

这是另一种方法:

const urls = ["/about-us", "/memstaff-team", "/careers"];
if (urls.some(url => window.location.href.indexOf(url)  > -1)) { 
   alert("...");
}