Sha256: 76f84f50cc9d46dafa5dd65ba930d4178d5183f5ce4b74b4e984ea968e880e19
Contents?: true
Size: 1.33 KB
Versions: 5
Compression:
Stored size: 1.33 KB
Contents
import { assertEq } from "./assertions.mjs"; let htmlReplacements = [ [ /[&]/g, '&' ], [ /[<]/g, '<' ], [ /[>]/g, '>' ], ]; var EscapeHelper = { escapeHTML(text) { for (const item of htmlReplacements) { text = text.replace(item[0], item[1]); } return text; }, // Escape for usage within a regex expression escapeRegex(text) { return text.replace(/([\*\(\).\[\]\{\}\^\$\-\=\;\:\'\"\\])/g, '\\$1'); //' }, // Escape text for usage within a replacement pattern // E.g. "foobar".replaceAll("foo", text); escapeReplacePattern(text) { return text.replace(/\$/g, '$$$$'); } }; assertEq("Test escape <", EscapeHelper.escapeHTML('<'), '<'); assertEq("Test escape multiple <", EscapeHelper.escapeHTML('<a></a>'), '<a></a>'); assertEq("Test escape >", EscapeHelper.escapeHTML('>'), '>'); assertEq("Test escape identity", EscapeHelper.escapeHTML('Hello, world.'), 'Hello, world.'); assertEq("Test regex escape simple", EscapeHelper.escapeRegex(".*"), "\\.\\*"); assertEq("Test regex more complicated escape", EscapeHelper.escapeRegex("This, is a test... :)"), "This, is a test\\.\\.\\. \\:\\)"); assertEq("Test replace pattern escape", EscapeHelper.escapeReplacePattern("0$ and 24 cents"), "0$$ and 24 cents"); export default EscapeHelper;
Version data entries
5 entries across 5 versions & 1 rubygems