2011-07-07 12 views
16

quiero comprobar es un texto está en una cadena, por ejemplo, tengo una cadenaComprobar si el texto está en una cadena

str = "car, bycicle, bus" 

y tengo otra cadena

str2 = "car" 

Quiero comprobar si str2 está en str.

soy un novato en javascript así que por favor tengan paciencia conmigo :)

Saludos

+0

Una buena referencia sobre métodos de javascript 'string': https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String – Equiso

Respuesta

21
if(str.indexOf(str2) >= 0) { 
    ... 
} 

O si quieres ir a la ruta de expresiones regulares:

if(new RegExp(str2).test(str)) { 
    ... 
} 

Sin embargo usted puede hacer frente problemas con el escape (metacaracteres) en este último, por lo que la primera ruta es más fácil.

+0

Esto debería funcionar perfectamente. 'indexOf' devuelve el índice del comienzo de' str2' en 'str'. devuelve -1 si no está en la matriz. – switz

+1

Me gusta usar la variante! = -1. ---- if (str.indexOf (str2)! = -1) {} –

2

str.lastIndexOf (str2)> 0; Esto debería funcionar. aún no probado.

+0

¿por qué usar 'lastIndexOf' en lugar de' indexOf'? – hughes

+0

Solo por la fuerza del hábito, me he quemado en el pasado usando indexOf ... lastIndexOf funciona de la misma manera que yo sé cuando solo hay una instancia de la cadena que se está buscando. –

+1

Interesante. ¿Qué circunstancias sería el caso 'indexOf' causar problemas? – hughes

1

Utilice esto:

var s = "foo"; 
alert(s.indexOf("oo") > -1); 
+0

¿En qué se diferencia esto de la respuesta aceptada, excepto que usa '>' en lugar de '> ='? – Ram

+0

Ram, ¡¡¡Ambos son iguales !! Si va a ver las condiciones, ambas indican lo mismo, cualquiera que sea el valor que obtenga utilizando la función "indexOf" debe ser mayor o igual que 0. – darshankhamar

+3

Ambas son iguales, eso es lo que quise decir. Por favor, no agregue una respuesta duplicada a la pregunta, sino que cambie la respuesta existente si lo desea. – Ram

Cuestiones relacionadas