borrame.com - Colección particular de recortes de código y documentación para programación web

Canales RSS

Lo más fresco

  1. Enlaces sobre desarrollo web Modificado
  2. Cadena aleatoria en PHP Modificado
  3. Recortar texto Nuevo

Sugerencias del chef

Lo más visitado

  1. Canales RSS
  2. Formato condicional según el día de la semana
  3. Enlaces sobre desarrollo web
  4. Recortar texto
  5. Convertir de minutos a horas
Compartir esta página

Entidades HTML

JavaScript, el languaje nacido para manipular HTML, no tiene ningún método nativo para escapar texto en el contexto de HTML (dejando aparte la ingeniosa filigrana de invocar al DOM, inyectar el texto en un elemento fastasma y leerlo de vuelta). Así que siempre viene bien esta pareja de funciones que lo hacen sin florituras y funcionan en entornos sin DOM como Node.js.

Versión «función»

/** * Inserta las entidades HTML básicas para inyectar texto en HTML * * @param {String} texto Texto plano * @returns {String} HTML * * @version 2020-05-01 */ function txt2html(texto) { return String(texto) .replace(/&/g, "&amp;") .replace(/"/g, "&quot;") .replace(/'/g, "&#039;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } /** * Reemplaza las entidades HTML básicas por el carácter que representan * * @param {String} html Texto en HTML * @returns {String} Texto plano * * @version 2014-02-17 */ function html2txt(html) { return String(html) .replace(/&gt;/g, ">") .replace(/&lt;/g, "<") .replace(/&#039;/g, "'") .replace(/&quot;/g, '"') .replace(/&amp;/g, "&"); }

Versión «método del objeto String»

Nota: como ya sabemos todos, cada vez que extendemos el prototipo de los objetos nativos Dios mata un gatito.

/** * Inserta las entidades HTML básicas para inyectar texto en HTML * * @returns {String} HTML * * @version 2020-05-01 */ String.prototype.encodeHTML = function(){ return this .replace(/&/g, "&amp;") .replace(/"/g, "&quot;") .replace(/'/g, "&#039;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } /** * Reemplaza las entidades HTML básicas por el carácter que representan * * @returns {String} Texto plano * * @version 2014-02-17 */ String.prototype.decodeHTML = function(){ return this .replace(/&gt;/g, ">") .replace(/&lt;/g, "<") .replace(/&#039;/g, "'") .replace(/&quot;/g, '"') .replace(/&amp;/g, "&"); }

Historial

2020-05-01
Corregir una errata vergonzosa en los métodos para codificar introducida en 2014.
2014-02-17
Simplificar el código (¿quién necesita tantas variables?).
Documentación en formato jsdoc.
v2005-09-18
Añadimos a las funciones la palabra clave var para convertir las variables en locales (señor, qué despiste).
Primera versión de los métodos.
v2005-08-30
Primera versión de las funciones.

Esta página ha sido impresa el miércoles 12 de agosto de 2026 (13:52:50 +0200) desde https://borrame.com/recortes/javascript/entidades-html.html. La última vez que miré contenía HTML válido con CSS fresquito y si tiene flatas de ortografía ha sido sin querer.

Lorem ipsum dolor sit amet.

© 2005-2026 by Álvaro González (alvaro.es) • Burgos (España) • borrame.com