javascript - validacion - ¿Cómo pruebo si una variable no es igual a dos valores?
validar formulario javascript antes de enviar (7)
Quiero escribir una instrucción if / else que pruebe si el valor de una entrada de texto NO es igual a uno de dos valores diferentes. Me gusta esto (disculpe mi código pseudo-inglés):
var test = $("#test").val(); if (test does not equal A or B){ do stuff; } else { do other stuff; }
¿Cómo escribo la condición para la declaración if en la línea 2?
ECMA2016 Respuesta más breve, especialmente buena cuando se comprueban valores múltiples:
if (!["A","B", ...].includes(test)) {}
En general, sería algo como esto:
if(test != "A" && test != "B")
Probablemente deberías leer los operadores lógicos de JavaScript.
Lo hago usando jQuery
if ( 0 > $.inArray( test, [a,b] ) ) { ... }
Puedo sugerir tratar de usar en la declaración else si en su declaración if / else. Y si no desea ejecutar ningún código que no sea en las condiciones que desee, puede dejar el resto al final de la declaración. de lo contrario, también se puede usar para cualquier cantidad de rutas de desvío que necesiten que las cosas sean una determinada condición para cada una.
si (condición 1) {
} else if (condición 2) {
} else {
}
Usaste la palabra "o" en tu pseudo código, pero basado en tu primera oración, creo que quieres decir y. Hubo cierta confusión sobre esto porque esa no es la forma en que la gente suele hablar.
Usted quiere:
var test = $("#test").val();
if (test !== ''A'' && test !== ''B''){
do stuff;
}
else {
do other stuff;
}
¡Piensa !
(operador de negación) como "no", ||
(operador booleano) como "o" y &&
(booleano-y operador) como "y". Ver Operators y precedencia del operador .
Así:
if(!(a || b)) {
// means neither a nor b
}
Sin embargo, usando la Ley de De Morgan , podría escribirse como:
if(!a && !b) {
// is not a and is not b
}
b
puede ser cualquier expresión (como test == ''B''
o lo que sea).
Una vez más, si test == ''A''
y test == ''B''
, son las expresiones, tenga en cuenta la expansión de la primera forma:
// 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'')
var test = $("#test").val();
if (test != ''A'' && test != ''B''){
do stuff;
}
else {
do other stuff;
}