Foros del Web » Programando para Internet » Javascript »

Reemplazar tag concreto

Estas en el tema de Reemplazar tag concreto en el foro de Javascript en Foros del Web. Buenas. Estoy empleando la siguiente función para eliminar los tags HTML de una string, pero elimina más de lo que necesito que elimine... Ésta es ...
  #1 (permalink)  
Antiguo 06/06/2011, 11:23
 
Fecha de Ingreso: marzo-2010
Mensajes: 128
Antigüedad: 14 años, 8 meses
Puntos: 1
Pregunta Reemplazar tag concreto

Buenas. Estoy empleando la siguiente función para eliminar los tags HTML de una string, pero elimina más de lo que necesito que elimine... Ésta es la función:

Código HTML:
function QuitaHTML(strTexto) {
	var regEx = /<[^>]*>/g;
	return strTexto.replace(regEx, "");
}
En la string hay <br/>, <a></a>, etc. y yo solo necesito eliminar uno concreto, el <blockquote></blockquote>, teniendo en cuenta además que el blockquote de apertura tiene un style="". Conocéis alguna forma sencilla de hacer eso?? Cualquier aporte es bienvenido.

Gracias!
__________________
Cuantos más errores cometas, más cerca te encontrarás de la solución final. Lo importante es no rendirse...
  #2 (permalink)  
Antiguo 06/06/2011, 13:41
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, 6 meses
Puntos: 834
Respuesta: Reemplazar tag concreto

Fijate si te sirve esto:
Código:
<script type="text/javascript">
function reemplazarTag(tag,txt){
	var re=new RegExp("<"+tag+"+[^>]*>(.*?)</"+tag+">","gim");
	return txt.replace(re,function(){return arguments[1];});
}
var res=reemplazarTag('blockquote','<br/>, <a></a>, etc. y yo solo necesito eliminar uno concreto, el <blockquote style="display:block;border:1px solid red;">lo que sea</blockquote>,');
alert(res);
</script>
  #3 (permalink)  
Antiguo 06/06/2011, 13:59
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 6 meses
Puntos: 310
Respuesta: Reemplazar tag concreto

Cita:
Iniciado por Panino5001
Fijate si te sirve esto:
Código:
<script type="text/javascript">
function reemplazarTag(tag,txt){
	var re=new RegExp("<"+tag+"+[^>]*>(.*?)</"+tag+">","gim");
	return txt.replace(re,function(){return arguments[1];});
}
var res=reemplazarTag('blockquote','<br/>, <a></a>, etc. y yo solo necesito eliminar uno concreto, el <blockquote style="display:block;border:1px solid red;">lo que sea</blockquote>,');
alert(res);
</script>
¿Hay alguna diferencia entre
Código:
return txt.replace(re,function(){return arguments[1];});
y
Código:
return txt.replace(re, '$1');
?
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #4 (permalink)  
Antiguo 06/06/2011, 14:03
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, 6 meses
Puntos: 834
Respuesta: Reemplazar tag concreto

Hasta donde sé (no son mi fuerte las RegExp) es lo mismo.
  #5 (permalink)  
Antiguo 06/06/2011, 15:12
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 6 meses
Puntos: 310
Respuesta: Reemplazar tag concreto

Esque pensé, "Si lo usa Panino, quizás es más rápido, o más recomendado, o algo"
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #6 (permalink)  
Antiguo 06/06/2011, 15:50
 
Fecha de Ingreso: diciembre-2008
Ubicación: Cordoba
Mensajes: 127
Antigüedad: 16 años
Puntos: 17
Respuesta: Reemplazar tag concreto

$1 es el que se captura en cada []
  #7 (permalink)  
Antiguo 07/06/2011, 03:00
 
Fecha de Ingreso: marzo-2010
Mensajes: 128
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Reemplazar tag concreto

genial! funciona perfectamente!!! ^_^ muchas gracias! ahora, si no es mucho pedir, me gustaría contar con la opción de eliminar tb lo que se encuentra dentro del blockquote es decir:

"<"+tag+"+[^>]*>Eliminar esta parte también cuando esté dentro del tag especificado</"+tag+">","gim"

He probado así:

"<"+tag+"+[^>]*>[^>]*</"+tag+">","gim"

pero me devuelve : " <br/>, <a></a>, etc. y yo solo necesito eliminar uno concreto, el 66, "

Lo he intentado, pero apenas tengo conocimientos de JavaScript... si fuera PHP ya sería otra cosa... así que si necesitas una mano con cualquier cosa al otro lado del servidor comentamela, ok?

Muchas gracias Panino!!
__________________
Cuantos más errores cometas, más cerca te encontrarás de la solución final. Lo importante es no rendirse...

Última edición por Banditolane; 07/06/2011 a las 03:07
  #8 (permalink)  
Antiguo 07/06/2011, 06:13
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 9 meses
Puntos: 192
Respuesta: Reemplazar tag concreto

Probá esto:
Código Javascript:
Ver original
  1. function reemplazarTag(tag,txt){
  2.   var re=new RegExp("<"+tag+"+[^>]*>(.*?)</"+tag+">","gim");
  3.   return txt.replace(re,RegExp.$1);
  4. }
__________________
nahueljose.com.ar

Etiquetas: js, replace, tags
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:53.