Eliminar etiquetas HTML con Javascript
Escrito por J.F. el Viernes, 7 de Diciembre del 2007 a las 13:47
Vamos a ver como podemos eliminar todas las etiquetas HTML de un texto mediante el uso de Javascript y una expresión regular. Eliminar las etiquetas HTML de un texto es necesario multitud de veces, para evitar que un usuario malintencionado haga mal uso de la permisividad del uso de dichas etiquetas.
Seguro que en alguna ocasión has observado que en foros, en vez de permitir utilizar etiquetas HTML para dar formato a los mensajes, utilizan otro tipo de etiquetas denominadas BBCode. Sin duda la principal razón de evitar la inserción de código HTML es frenar los ataques XSS como ya hemos comprobado en anteriores ocasiones. La función en cuestión para quitar de una cadena todo resto de HTML, es la siguiente:
-
function stripHTML(cadena)
-
{
-
return cadena.replace(/<[^>]+>/g,'');
-
}
Con el empleo de esa expresión regular, eliminamos cualquier cosa que se encuentre delimitada con los caracteres < >. Simplemente hemos de pasarle como parámetro, la variable en la que almacenemos el texto del cual queremos eliminar cualquier signo de HTML. A continuación un pequeño ejemplo, en el cual podrás escribir en un textarea todo el código que quieras, y al hacer click en un botón en el de al lado aparecerá el resultado sin las etiquetas HTML:
-
function stripHTML(cadena)
-
{
-
document.all.sinHTML.value = cadena.replace(/<[^>]+>/g,'');
-
}
-
</script>
-
</head>
-
<h2>Introduce texto con HTML</h2>
-
-
<p align="center">El texto no contendra el formato HTMl, porque <b>va a ser eliminado.</b><hr/></p>
-
</textarea></p>
-
-
-
<h2>Texto sin HTML</h2>
-
-
</textarea></p>
-
-
</body>
-
</html>
Categoria: Javascript
- Añadir este post a
- Del.icio.us -
- Meneame -
- Digg -
- Webeame
Entradas relacionadas
Deja un comentario
