Подтвердить что ты не робот

Как проверить, не имеет ли переменная ни одно из двух значений?

Я хочу написать оператор if/else, который проверяет, не имеет ли значение текстового ввода одно из двух разных значений. Как это (извините мой псевдо-английский код):

var test = $("#test").val();
if (test does not equal A or B){
    do stuff;
}
else {
    do other stuff;
}

Как написать условие для оператора if в строке 2?

4b9b3361

Ответ 1

Подумайте о ! (оператор отрицания) как "not", || (boolean-or operator) как "или" и && (boolean-and operator) как "и". См. Operators и Приоритет оператора.

Таким образом:

if(!(a || b)) {
  // means neither a nor b
}

Однако, используя De Morgan Law, он может быть записан как:

if(!a && !b) {
  // is not a and is not b
}

a и b выше может быть любым выражением (например, test == 'B' или тем, что должно быть).

Еще раз, если test == 'A' и test == 'B', являются выражениями, обратите внимание на разложение 1-го вида:

// if(!(a || b)) 
if(!((test == 'A') || (test == 'B')))
// or more simply, removing the inner parenthesis as
// || and && have a lower precedence than comparison and negation operators
if(!(test == 'A' || test == 'B'))
// and using DeMorgan's, we can turn this into
// this is the same as substituting into if(!a && !b)
if(!(test == 'A') && !(test == 'B'))
// and this can be simplified as !(x == y) is the same as (x != y)
if(test != 'A' && test != 'B')

Ответ 2

ECMA2016 Самый короткий ответ, особенно хорошо при повторном проверке нескольких значений:

if (!["A","B", ...].includes(test)) {}

Ответ 3

В общем, это будет примерно так:

if(test != "A" && test != "B")

Вероятно, вам стоит прочитать логические операторы JavaScript.

Ответ 4

Я использую jQuery

if ( 0 > $.inArray( test, [a,b] ) ) { ... }

Ответ 5

var test = $("#test").val();
if (test != 'A' && test != 'B'){
    do stuff;
}
else {
    do other stuff;
}

Ответ 6

Вы использовали слово "или" в своем псевдокоде, но на основе вашего первого предложения, я думаю, вы имеете в виду и. Было некоторое замешательство в этом, потому что это не так, как обычно говорят люди.

Вы хотите:

var test = $("#test").val();
if (test !== 'A' && test !== 'B'){
    do stuff;
}
else {
    do other stuff;
}

Ответ 7

Могу ли я попытаться использовать в if if else оператор if else. И если вы не хотите запускать какой-либо код, который не подходит ни при каких условиях, вы можете просто оставить его в конце инструкции. else, если также может использоваться для любого количества путей утечки, которые должны быть определенными для каждого условия.

если (условие 1) {

} else if (условие 2) {

} else {

}