2010-11-22 25 views
12

Si una oración contiene "Hola mundo" (sin comillas), entonces debo devolver la verdad y hacer algo. Posibles frases podría ser así:si la oración contiene cadena

var sentence = "This is my Hello World and I like widgets." 
var sentence = "Hello World - the beginning of all" 
var sentence = "Welcome to Hello World" 

if (sentence.contains('Hello World')){ 
alert('Yes'); 
} else { 
alert('No'); 
} 

Conozco las .contains no funciona, por lo que estoy buscando algo que funciona. Regex es el enemigo aquí.

Respuesta

19

El método que está buscando es indexOf (Documentation). Pruebe las siguientes

if (sentence.indexOf('Hello World') >= 0) { 
    alert('Yes'); 
} else { 
    alert('No'); 
} 
+1

No se limite a intentarlo. Hazlo. ;) – Stephen

+0

@Stephen, ¿existe una semántica adicional que '! == false' agrega aquí o es solo para facilitar la lectura? – JaredPar

+0

Eh, lo siento. Acabo de borrar esa parte del comentario, Jared. De hecho, si la cadena no existe, 'indexOf' devuelve' -1' no 'falso'. – Stephen

3

probar este lugar:

if (sentence.indexOf("Hello World") != -1) 
{ 
    alert("Yes"); 
} 
else 
{ 
    alert("No"); 
} 
Cuestiones relacionadas