Skip to main content
Module

x/vue3_reactivity/shared/escapeHtml.ts

vue3_reactivity is forck by @vue/reactivity for deno.
Latest
File
const escapeRE = /["'&<>]/
export function escapeHtml(string: unknown) { const str = '' + string const match = escapeRE.exec(str)
if (!match) { return str }
let html = '' let escaped: string let index: number let lastIndex = 0 for (index = match.index; index < str.length; index++) { switch (str.charCodeAt(index)) { case 34: // " escaped = '&quot;' break case 38: // & escaped = '&amp;' break case 39: // ' escaped = '&#39;' break case 60: // < escaped = '&lt;' break case 62: // > escaped = '&gt;' break default: continue }
if (lastIndex !== index) { html += str.slice(lastIndex, index) }
lastIndex = index + 1 html += escaped }
return lastIndex !== index ? html + str.slice(lastIndex, index) : html}
// https://www.w3.org/TR/html52/syntax.html#commentsconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g
export function escapeHtmlComment(src: string): string { return src.replace(commentStripRE, '')}