Menu
CoddyTech

Texto dentro de HTML

Parte de la sección Conceptos básicos de Express del Journey de Node.js de Coddy. Lección 9 de 23.

Un visitante puede escribir caracteres que HTML interpreta como marcado. Si un título contiene <b>, al colocarlo directamente en una página se crea una etiqueta. El escape convierte estos caracteres en texto que muestra el navegador.

escapeHtml('<b>Lunch</b>');
// &lt;b&gt;Lunch&lt;/b&gt;

La función auxiliar convierte & en &amp;, que el navegador muestra como un ampersand. Las comillas dobles se convierten en &quot;; los apóstrofos se mantienen sin cambios. Aplica el escape a cada valor de texto insertado, sin importar quién lo haya escrito, antes de rodearlo con tu propio HTML. Si aplicas el escape a toda la página, las etiquetas de encabezado también se mostrarán como texto. No necesitas escribir la función auxiliar; lo importante es decidir dónde usarla.

En una URL, escribe un espacio como %20, un ampersand como %26 y los corchetes angulares como %3C y %3E. Estas codificaciones mantienen el texto del título separado de la sintaxis de consulta.

challenge icon

Desafío

Fácil

Edita exercise.js. Usa la función auxiliar proporcionada con el título antes de colocarlo dentro de tus propias etiquetas de encabezado. Devuelve el encabezado completo en html.

Prueba «Ejecutar»: GET /result?title=Fish%20%26%20Chips devuelve {"html":"<h1>Fish &amp; Chips</h1>"}. Prueba /result?title=%3Cb%3ELunch%3C%2Fb%3E: el título insertado debe ser texto, mientras que el encabezado debe seguir siendo marcado.

Pruébalo tú mismo

import { escapeHtml } from './html.js';
export function exercise({ title }) {
    return { html: `<h1>${title}</h1>` };
}

Todas las lecciones de Conceptos básicos de Express

Practica por tu cuenta: Playground de Express