Skip to main content
Module

x/escape_html/mod.ts

Escape string for use in HTML for Deno
Latest
File
/*! * escape-html * Copyright(c) 2012-2013 TJ Holowaychuk * Copyright(c) 2015 Andreas Lubbe * Copyright(c) 2015 Tiancheng "Timothy" Gu * Copyright (c) 2020 Henry Zhuang * MIT Licensed */
const matchHtmlRegExp = /["'&<>]/;
/** * Escape special characters in the given string of text. * * @param {string} string The string to escape for inserting into HTML * @return {string} * @public */
export function escapeHtml(string: string): string { const str = "" + string; const match = matchHtmlRegExp.exec(str);
if (!match) { return str; }
let escape; let html = ""; let index = 0; let lastIndex = 0;
for (index = match.index; index < str.length; index++) { switch (str.charCodeAt(index)) { case 34: // " escape = "&quot;"; break; case 38: // & escape = "&amp;"; break; case 39: // ' escape = "&#39;"; break; case 60: // < escape = "&lt;"; break; case 62: // > escape = "&gt;"; break; default: continue; }
if (lastIndex !== index) { html += str.substring(lastIndex, index); }
lastIndex = index + 1; html += escape; }
return lastIndex !== index ? html + str.substring(lastIndex, index) : html;}