UNPKG

excel-builder-vanilla

Version:

An easy way of building Excel files with javascript

43 lines (41 loc) 1.36 kB
/** Lodash Util - Used to map characters to HTML entities. */ const htmlEscapes: { [char: string]: string } = { '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;', }; /** * Converts the characters "&", "<", ">", '"', and "'" in `string` to their * corresponding HTML entities. * * **Note:** No other characters are escaped. To escape additional * characters use a third-party library like [_he_](https://mths.be/he). * * Though the ">" character is escaped for symmetry, characters like * ">" and "/" don't need escaping in HTML and have no special meaning * unless they're part of a tag or unquoted attribute value. See * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) * (under "semi-related fun fact") for more details. * * When working with HTML you should always * [quote attribute values](http://wonko.com/post/html-escaping) to reduce * XSS vectors. * * @since 0.1.0 * @category String * @param {string} [str=''] The string to escape. * @returns {string} Returns the escaped string. * @see escapeRegExp, unescape * @example * * escape('fred, barney, & pebbles') * // => 'fred, barney, &amp; pebbles' */ export const htmlEscape = (str: string) => { if (typeof str !== 'string') { str = `${str}`; } return str.replace(/[&<>"']/g, m => htmlEscapes[m]); };