Foros del Web » Programando para Internet » Javascript »

RegExp para eliminar imágenes

Estas en el tema de RegExp para eliminar imágenes en el foro de Javascript en Foros del Web. Hola a todos, soy nuevo aquí. Tengo un problema. Tengo que localizar miles de imágenes dentro de un http_request.responseText para eliminarlas antes de insertar el ...
  #1 (permalink)  
Antiguo 24/06/2008, 14:01
 
Fecha de Ingreso: junio-2008
Mensajes: 2
Antigüedad: 15 años, 10 meses
Puntos: 0
RegExp para eliminar imágenes

Hola a todos, soy nuevo aquí.
Tengo un problema.
Tengo que localizar miles de imágenes dentro de un http_request.responseText para eliminarlas antes de insertar el response en un <TD>
La cadena de texto de las imágenes es <img alt="" src="images/px" style="width: 1px; height: 1px;"/> ó <img alt="" src="images/px" border="0"/>, variando la anchura y la altura.
¿Me podéis indicar como crear una RegExp para localizar ese trozo de código independientemente de la anchura y la altura de la imagen?
Yo no lo consigo.

Muchas gracias.
  #2 (permalink)  
Antiguo 24/06/2008, 14:18
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: RegExp para eliminar imágenes

No hace falta usar regexp:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title></title>

</
head>

<
body>
<
div id="pp">contenedor de la respuesta</div>
<
script>
response='ssssssss<img alt="" src="images/px" style="width: 1px; height: 1px;"/>fffff<img alt="" src="images/px" border="0"/>sssssss';
temp=document.createElement('div');
temp.innerHTML=response;
vec=temp.getElementsByTagName('img');
for(
i=0;i<vec.length;i++)
    if(
vec[i].src.split('/').pop()=='px')
        
vec[i].parentNode.removeChild(vec[i]);
document.getElementById('pp').innerHTML=temp.innerHTML;
delete temp;
</script>
</body>
</html> 
  #3 (permalink)  
Antiguo 24/06/2008, 15:32
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Respuesta: RegExp para eliminar imágenes

¡Qué buena solución por DOM Panino! Con expresiones regulares habríamos liado mucho el tema.

Me has dado alguna que otra idea para parsear HTML ajeno.

Gracias!
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #4 (permalink)  
Antiguo 24/06/2008, 15:39
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: RegExp para eliminar imágenes

Me alegra que te guste
  #5 (permalink)  
Antiguo 25/06/2008, 01:47
 
Fecha de Ingreso: junio-2008
Mensajes: 2
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: RegExp para eliminar imágenes

Muchas gracias Panino.
Lo único que he tenido que hacer es hacer el bucle descendiente ya que me eliminaba una imagen de cada dos.
Pero me ha sido muy útil.

Gracias de nuevo.
  #6 (permalink)  
Antiguo 25/06/2008, 03:08
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: RegExp para eliminar imágenes

Cierto! Pasa que el removeChild recorta la longitud del vector. Se soluciona así:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title></title>

</
head>

<
body>
<
div id="pp">contenedor de la respuesta</div>
<
script>
response='ssssssss<img alt="" src="images/px" style="width: 1px; height: 1px;"/>fffff<img alt="" src="images/px" border="0"/>sssssssssssssss<img alt="" src="images/px" style="width: 1px; height: 1px;"/>fffff<img alt="" src="images/px" border="0"/>sssssss';
temp=document.createElement('div');
temp.innerHTML=response;
vec=temp.getElementsByTagName('img');
for(
i=0;i<vec.length;i++)
    if(
vec[i].src.split('/').pop()=='px'){
        
vec[i].parentNode.removeChild(vec[i]);
        
i--;
    }
//alert(temp.innerHTML);
document.getElementById('pp').innerHTML=temp.innerHTML;
delete temp;
</script>
</body>
</html> 
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 21:47.