Проверка истинности ЛЮБОГО URL - PullRequest
1 голос
/ 25 июня 2019

Я новичок в Javascript, а также Jquery, но не могу понять, что я делаю неправильно. Я просто хочу проверить, есть ли у пользователя какой-либо из 3 URL-адресов. Я просто хочу проверить, находится ли пользователь в разделах «О нас», «Команда MEMSTAFF» или «КАРЬЕРА». Вот и все. Я думал, что если я просто использовал оператор 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 ]

2 голосов
/ 25 июня 2019

Тест

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" и просто проверяет это. Выражения «ИЛИ» не распространяются автоматически, вам нужно сделать это явно.

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)/))
0 голосов
/ 25 июня 2019

Вот еще один способ сделать это:

const urls = ["/about-us", "/memstaff-team", "/careers"];
if (urls.some(url => window.location.href.indexOf(url)  > -1)) { 
   alert("...");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...