Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Buscar con expresiones regulares

Estas en el tema de Buscar con expresiones regulares en el foro de Javascript en Foros del Web. Hola a todos, estoy intentando buscar unos numeros en una cadena y guardarlos en una variable pero no consigo que funcione con IE8, en Opera, ...
  #1 (permalink)  
Antiguo 28/06/2013, 08:28
 
Fecha de Ingreso: marzo-2012
Mensajes: 43
Antigüedad: 12 años, 1 mes
Puntos: 3
Buscar con expresiones regulares

Hola a todos,

estoy intentando buscar unos numeros en una cadena y guardarlos en una variable pero no consigo que funcione con IE8, en Opera, Chrome y Firefox funciona bien.

He probado de estas dos formas:
Código:
var expression='Se muestran (.*) resultados';
var regex = new RegExp(expression);
numero_resultados=regex.exec(respuesta);					
alert(numero_resultados[1]);
Código:
var expression='Se muestran (.*) resultados';
var regex = new RegExp(expression);
numero_resultados=respuesta.match(regex);					
alert(numero_resultados[1]);
¿Que es lo que hago mal? Tambien he probado a meter la epresion regular entr //, pero en IE 8 sigue sin funcionar.

Un saludo
  #2 (permalink)  
Antiguo 28/06/2013, 10:02
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 2 meses
Puntos: 36
Respuesta: Buscar con expresiones regulares

Cita:
pero no consigo que funcione con IE8, en Opera, Chrome y Firefox
Osea, de plano no te funciona, el problema no son los exploradores, es la forma como estas implementando tu lógica. Crea un expresión regular mas precisa y después concatenas el resultado con tu mensaje, de hecho eso que estas haciendo no es correcto.
__________________
Reedyseth
Te ayudo? No olvides dar un +
blog:http://behstant.com/blog
En el blog:Tutoriales de Desarrollo Web PHP, Javascript, BD y más.
  #3 (permalink)  
Antiguo 28/06/2013, 12:30
 
Fecha de Ingreso: marzo-2012
Mensajes: 43
Antigüedad: 12 años, 1 mes
Puntos: 3
Respuesta: Buscar con expresiones regulares

Hola, gracias por tu respuesta, el Firefox, Opera y Chrome si funciona, en el unico que no funciona es en IE8.

Seria mas correcto usar \d en vez de (.*)

Por cierto, la variable respuesta es el string
  #4 (permalink)  
Antiguo 28/06/2013, 14:24
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 2 meses
Puntos: 36
Respuesta: Buscar con expresiones regulares

Cierto, con IE siempre vas a tender a hacer un fix. Pero como te comento, mejor separa el patron de la Expresión y después concatenas.
__________________
Reedyseth
Te ayudo? No olvides dar un +
blog:http://behstant.com/blog
En el blog:Tutoriales de Desarrollo Web PHP, Javascript, BD y más.
  #5 (permalink)  
Antiguo 29/06/2013, 04:59
 
Fecha de Ingreso: marzo-2012
Mensajes: 43
Antigüedad: 12 años, 1 mes
Puntos: 3
Respuesta: Buscar con expresiones regulares

Hola,

el problema es que la variable respuesta es la respuesta de una peticion Ajax y no solo contiene la frase "Se muestran x resultados", sino que incluye mucho mas texto, incluidos otros numeros, y lo que pretendo es obtener los solo los numeros que se encientran entre "Se muestran" y "resultados".

Si utilizo la expresion \d me extraera todos los numeros de la variable, no?

Un saludo

Por eso no puedo utilizar
  #6 (permalink)  
Antiguo 29/06/2013, 07:07
 
Fecha de Ingreso: marzo-2012
Mensajes: 43
Antigüedad: 12 años, 1 mes
Puntos: 3
Respuesta: Buscar con expresiones regulares

He separado el patron de la expresion asi:

Cita:
var expression=' (\d)+ ';
var regex = new RegExp(expression);
numero_resultados=respuesta.match('Se muestran'+expression+'productos');
alert(numero_resultados[1]);
Pero sigue sin funcionar en IE8, en el resto va bien.

Un saludo
  #7 (permalink)  
Antiguo 29/06/2013, 13:23
 
Fecha de Ingreso: marzo-2012
Mensajes: 43
Antigüedad: 12 años, 1 mes
Puntos: 3
Respuesta: Buscar con expresiones regulares

BUeno pues no sé porqué pero si llamo a la variable nuemero_resultados en vez de numero_resultados funciona.. el caso es que esta variable solo la utilizo en estas dos lineas de codigo...
  #8 (permalink)  
Antiguo 29/06/2013, 18:17
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Buscar con expresiones regulares

buenas...

Cita:
Iniciado por keko123 Ver Mensaje
BUeno pues no sé porqué pero si llamo a la variable nuemero_resultados en vez de numero_resultados funciona.. el caso es que esta variable solo la utilizo en estas dos lineas de codigo...
¿tienes algún ID con ese mismo nombre? entonces, la causa es porque estás usando una variable global que hace conflicto con otra variable readonly. en iexplorer —y desgraciadamente uno que otro navegador, chrome por ejemplo— se crean variables automáticas usando como identificador el mismo valor asignado al atributo ID de cualquier elemento y como valor de la variable la referencia a ese elemento. es decir, <p id="paragraph">...</p> crea una variable paragraph con referencia al elemento anterior. creo que sólo en iexplorer las variables de esta naturaleza son readonly. en todo caso, para evitar este efecto tienes que declarar la variable explicitamente con var, no importa si es global o local a una función.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #9 (permalink)  
Antiguo 29/06/2013, 19:08
 
Fecha de Ingreso: marzo-2012
Mensajes: 43
Antigüedad: 12 años, 1 mes
Puntos: 3
Respuesta: Buscar con expresiones regulares

Muchas gracias por tu aclaración, en efecto tenía una capa con el id numero_resultados. Ya me estaba volviendo loco en intentar saber que pasaba... ya no entendía nada.

Un saludo y gracias de nuevo, de ahora en adelante lo tendré en cuenta

Etiquetas: expresiones, funcion, regulares
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:55.