Skip to content

Latest commit

 

History

History
38 lines (32 loc) · 1.36 KB

escapeHTML.md

File metadata and controls

38 lines (32 loc) · 1.36 KB
title tags author_title author_url author_image_url description image
escapeHTML
string,browser,regexp,intermediate
Deepak Vishwakarma
Implementation of "escapeHTML" in typescript, javascript and deno.

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).

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
  );
escapeHTML('<a href="#">Me & you</a>'); // '&lt;a href=&quot;#&quot;&gt;Me &amp; you&lt;/a&gt;'