JavaScript: Como remover tags HTML da string?

Duplicar Possível:
Remover HTML do JavaScript de texto

Como posso remover o HTML de uma string em JavaScript?

Usar o analisador do navegador é provavelmente a melhor aposta nos navegadores atuais. O seguinte irá funcionar, com as seguintes advertências:

  • Seu HTML é válido dentro de um elemento

    . O HTML contido nas tags ou ou não é válido em um

    e, portanto, não pode ser analisado corretamente.

  • textContent (a propriedade padrão DOM) e propriedades innerText (não-padrão) não são idênticas . Por exemplo, textContent includeá texto em um elemento enquanto innerText não (na maioria dos navegadores). Isso afeta apenas o IE < = 8, que é o único grande navegador que não suporta o textContent .
  • O HTML não contém elementos .
  • O HTML não é null
  • O HTML vem de uma fonte confiável. Usar isso com HTML arbitrário permite que JavaScript não confiável arbitrário seja executado. Este exemplo é de um comentário de Mike Samuel sobre a questão duplicada:

Código:

 var html = "

Some HTML

"; var div = document.createElement("div"); div.innerHTML = html; var text = div.textContent || div.innerText || "";
 cleanText = strInputCode.replace(/< \/?[^>]+(>|$)/g, ""); 

Destilado deste site (web.achive) .

 var html = "

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

Essa é basicamente a melhor maneira de fazer isso, você está permitindo que o navegador faça o que ele faz melhor – analisar HTML.


Edit: Como observado nos comentários abaixo, esta não é a solução mais cross-browser. A solução mais cross-browser seria recursivamente percorrer todos os filhos do elemento e concatenar todos os nós de texto que você encontrar. No entanto, se você estiver usando o jQuery, ele já faz isso por você:

 alert($("

Hello, World

").text());

Confira o método de texto .

Eu sei que esta pergunta tem uma resposta aceita, mas sinto que não funciona em todos os casos.

Para completar e desde que passei muito tempo nisso, aqui está o que fizemos: acabamos usando uma function do php.js (que é uma biblioteca muito legal para aqueles mais familiarizados com PHP, mas também fazendo um pouco de JavaScript a cada momento e então):

http://phpjs.org/functions/strip_tags:535

Parecia ser a única parte do código JavaScript que lidava com sucesso com todos os diferentes tipos de input que eu colocava no meu aplicativo. Isto é, sem quebrá-lo – veja meus comentários sobre a tag acima.