JavaScript Tutorials

Decodificando Entidades HTML em JavaScript de Forma Eficiente

Spread the love

Entidades HTML são marcadores de posição para caracteres especiais em HTML. Caracteres como <, >, &, " e ' têm significados específicos dentro do HTML e devem ser escapados para evitar a interrupção da estrutura do documento. Ao recuperar HTML de um servidor ou entrada do usuário, geralmente é necessário decodificar essas entidades para exibi-las e manipulá-las corretamente. Este artigo explora dois métodos para decodificar entidades HTML usando JavaScript.

Sumário

Decodificando Entidades HTML com JavaScript Vanilla

JavaScript Vanilla fornece uma maneira simples de decodificar entidades HTML usando o DOMParser integrado do navegador. Este método é eficiente e não requer bibliotecas externas. No entanto, pode não lidar com todas as entidades perfeitamente, particularmente as menos comuns ou personalizadas.


function decodeHTMLEntities(text) {
  const doc = new DOMParser().parseFromString(text, 'text/html');
  return doc.documentElement.textContent;
}

// Exemplo de uso:
const encodedText = '<p>Este é um parágrafo com &amp; nele.</p>';
const decodedText = decodeHTMLEntities(encodedText);
console.log(decodedText); // Saída: 

Este é um parágrafo com & nele.

Esta função analisa a string de entrada como HTML usando DOMParser. A propriedade textContent do elemento raiz retorna então o texto decodificado, removendo tags HTML e substituindo entidades. Observe que este método também remove quaisquer tags HTML presentes na entrada.

Decodificando Entidades HTML com a biblioteca he

Para uma decodificação mais abrangente, especialmente para uma gama mais ampla de entidades, a biblioteca he é uma solução robusta. É leve e facilmente disponível via npm ou CDN.

Instalação (npm):


npm install he

Instalação (CDN – jsDelivr):


<script src="https://cdn.jsdelivr.net/npm/he"></script>

Após a instalação, use a função he.decode():


// Assumindo que a biblioteca 'he' esteja incluída
const encodedText = '<p>Este é um parágrafo com &amp; e ' nele.</p>';
const decodedText = he.decode(encodedText);
console.log(decodedText); // Saída: 

Este é um parágrafo com & e ' nele.

he.decode() lida com um espectro mais amplo de entidades, incluindo entidades numéricas como ' (aspas simples).

Escolhendo um Método

Ambos os métodos decodificam efetivamente entidades HTML. A abordagem JavaScript vanilla é adequada para casos simples e evita dependências externas. Para cenários complexos ou uma gama mais ampla de entidades, a biblioteca he fornece uma solução mais confiável. Sempre sanitize a entrada do usuário para evitar vulnerabilidades de segurança.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *