Skip to main content

escapeHTML

TS JS Deno

Escapes a string for use in HTML.

Use String.prototype.replace() with a regexp that matches the characters that need to be escaped, using a callback function to replace each character instance with its associated escaped character using a dictionary (object).

typescript
export enum HTMLEscapeChars {
"&" = "&",
"<" = "&lt;",
">" = "&gt;",
"'" = "&#39;",
'"' = "&quot;",
}
const htmlEscapeReg = new RegExp(`[${Object.keys(HTMLEscapeChars)}]`, "g");

const escapeHTML = (str: string) =>
str.replace(
htmlEscapeReg,
(tag: string) => (HTMLEscapeChars as StringMap<string>)[tag] || tag
);
typescript
escapeHTML('<a href="#">Me & you</a>'); // '&lt;a href=&quot;#&quot;&gt;Me &amp; you&lt;/a&gt;'