Saltar al contenido

Cómo quitar etiquetas HTML de string en JavaScript?

No olvides que en las ciencias cualquier problema casi siempere suele tener más de una resoluciones, así que nosotros enseñamos lo más óptimo y eficiente.

Solución:

cleanText = strInputCode.replace(/]+(>|$)/g, "");

Destilado de este sitio web (web.achive).

Esta expresión regular busca <una barra inclinada opcional /uno o más caracteres que no son >entonces tambien > o $ (el fin de la línea)

Ejemplos:

'
Hello
' ==> 'Hello' ^^^^^ ^^^^^^ 'Unterminated Tag 'Unterminated Tag ' ^^

Pero no es a prueba de balas:

'If you are < 13 you cannot register' ==> 'If you are '
            ^^^^^^^^^^^^^^^^^^^^^^^^
'
Hello
' ==> ' 42">Hello' ^^^^^^^^^^^^^^^^^^ ^^^^^^

Si alguien está tratando de romper su aplicación, esta expresión regular no te protegerá. Solo debe usarse si ya conoce el formato de su entrada. Como han señalado otras personas conocedoras y en su mayoría cuerdas, para quitar las etiquetas de manera segura, usted deber utiliza un analizador.

Si no tiene acceso a un analizador conveniente como el DOM, y no puede confiar en que su entrada esté en el formato correcto, es mejor que use un paquete como sanitize-html, y también hay otros desinfectantes disponibles.

Usar el analizador del navegador es probablemente la mejor apuesta en los navegadores actuales. Lo siguiente funcionará, con las siguientes advertencias:

  • Su HTML es válido dentro de un
    elemento. HTML contenido dentro o o etiquetas no es válida dentro de un

    y, por lo tanto, es posible que no se analice correctamente.
  • textContent (la propiedad estándar DOM) y innerText Las propiedades (no estándar) no son idénticas. Por ejemplo, textContent incluirá texto dentro de un

Código:

var html = "

Some HTML

"; var div = document.createElement("div"); div.innerHTML = html; var text = div.textContent || div.innerText || "";

var html = "

Hello, World"; var div = document.createElement("div"); div.innerHTML = html; alert(div.innerText); // Hello, World

Prácticamente la mejor forma de hacerlo es dejar que el navegador haga lo que mejor hace: analizar HTML.


Editar: como se indica en los comentarios a continuación, esta no es la solución más multinavegador. La solución más multinavegador sería revisar recursivamente todos los elementos secundarios del elemento y concatenar todos los nodos de texto que encuentre. Sin embargo, si está usando jQuery, ya lo hace por usted:

alert($("

Hello, World

").text());

Echa un vistazo al método de texto.

Agradecemos que desees añadir valor a nuestro contenido informacional asistiendo con tu veteranía en las aclaraciones.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *