UNPKG

@worker-tools/html

Version:

HTML templating and streaming response library for Worker Runtimes such as Cloudflare Workers.

55 lines 1.48 kB
/*! * 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) { 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; } //# sourceMappingURL=mod.js.map