regexp

M
На сайте с 01.10.2014
Offline
61
383

Всем привет. Есть два регулярных выражения. Скрипт выглядит так:

if (reg1.test(ip_range) == true || reg2.test(ip_range) == true) {$('.wrong_ip_range').remove(); }

if (reg1.test(ip_range) == true && reg2.test(ip_range) == true) {$('.ip_list').after('<div class="wrong_ip_range">Неверный формат ip диапозонов.</div>');}

else { $('.ip_list').after('<div class="wrong_ip_range">Неверный формат ip диапозонов.</div>');};

});

В первом случае, если переменная выдает true хотя бы в одной регулярке, то все ок.

Во втором случае, если переменная выдает true для каждой регулярки, то все не ок.

И в третьем случае, если что-то не то, тоже не ок.

Суть в том, первое и последнее условия почему-то одновременно срабатывают. Хотя когда я убираю второе условие, то все ок. Что может быть не так?

Лучшая вап клик пп для выкупа подписок (https://mcwap.ru/?r=1153)
MT
На сайте с 17.01.2017
Offline
22
#1

Возможно, во втором условии нужно использовать else if вместо if.

M
На сайте с 01.10.2014
Offline
61
#2
MikeTheRaven:
Возможно, во втором условии нужно использовать else if вместо if.

я тоже думал, но так второе условие вообще не срабатывает, только первое.

Samail
На сайте с 10.05.2007
Offline
361
#3
mortido:
Во втором случае, если переменная выдает true для каждой регулярки, то все не ок.
И в третьем случае, если что-то не то, тоже не ок

Ну там же нет третьего условия, там написано - если второе условие подходит "всё не ОК" или "всё не ОК". Т.е. "не ОК" будет в любом случае.

---------- Добавлено 12.06.2018 в 22:29 ----------

mortido:
я тоже думал, но так второе условие вообще не срабатывает, только первое.

Местами их поменяйте

if (reg1.test(ip_range) == true && reg2.test(ip_range) == true) {$('.ip_list').after('<div class="wrong_ip_range">Неверный формат ip диапозонов.</div>');}

else if (reg1.test(ip_range) == true || reg2.test(ip_range) == true) {$('.wrong_ip_range').remove(); }
else { $('.ip_list').after('<div class="wrong_ip_range">Неверный формат ip диапозонов.</div>');};
});
M
На сайте с 01.10.2014
Offline
61
#4
Samail:
Ну там же нет третьего условия, там написано - если второе условие подходит "всё не ОК" или "всё не ОК". Т.е. "не ОК" будет в любом случае.

---------- Добавлено 12.06.2018 в 22:29 ----------


Местами их поменяйте
if (reg1.test(ip_range) == true && reg2.test(ip_range) == true) {$('.ip_list').after('<div class="wrong_ip_range">Неверный формат ip диапозонов.</div>');}

else if (reg1.test(ip_range) == true || reg2.test(ip_range) == true) {$('.wrong_ip_range').remove(); }
else { $('.ip_list').after('<div class="wrong_ip_range">Неверный формат ip диапозонов.</div>');};
});

Да так работает, спасибо.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий