En jQuery o JavaScript, ¿cómo probaría este tipo de condición?

If myString does NOT include any of the following: "apple" or "orange" or "banana" Then
 Do stuff...

Gracias.

-3
jdscomms 30 oct. 2017 a las 01:23

4 respuestas

La mejor respuesta

Esto debería funcionar;

if ( myString !=='Apple' || myString !=='Orange' || myString !=='banana' ) {
// Do something
}
2
Onyekachi Samuel 29 oct. 2017 a las 22:30

También puede intentar combinar expresiones regulares con las < a href = "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test" rel = "nofollow noreferrer"> función test () .

var containsApple = "this string contains apple";
var doesNotContainApple = "this is a test string."
var pattern = new RegExp(/apple|orange|banana/);

console.log("example 1 - '" + containsApple + "'");
//if it contains apple,orange or banana
if (pattern.test(containsApple)) 
  console.log("found apple in string") 
else
  console.log("Did not find apple in string")
  
console.log("example 2 - '" + doesNotContainApple + "'");
//If it doesnt contain any of the words
if (pattern.test(doesNotContainApple)) 
  console.log("found apple in string") 
else
  console.log("Did not find apple in string")
0
Master Yoda 29 oct. 2017 a las 22:46

Siento que las sugerencias hasta ahora pueden haber sido un poco torpes. Propongo:

const fruits = ['apples', 'oranges', 'bananas'];
const hasString = fruits.filter((fruit) => 'foobar'.indexOf(fruit) !== -1);

if (hasString.length < 1) {
  // Do stuff
}

Esto también le da la ventaja adicional de devolver una matriz de las cadenas que aparecen en su cadena original.

0
Kwesi 29 oct. 2017 a las 23:12

Tratar:

if((myString.contains("apple" || "orange" || "banana")) == false)
    return ...
2
Herwood99 29 oct. 2017 a las 22:34