@technobuddha/library
Version:
A large library of useful functions
20 lines (19 loc) • 606 B
JavaScript
import build from '../build';
import splitChars from '../splitChars';
/**
* Escape a string for use in HTML
*
* @param input The string to escape
* @param __namedParameters see {@link Options}
*/
export function escapeHTML(input, { escapeNonAscii = false } = {}) {
return build(splitChars(input).map(c => entities[c] ?? ((c < '\u0020' || (c > '\u007E' && c < '\u00a0')) || (escapeNonAscii && c > '\u007F') ? `&#${c.codePointAt(0)};` : c)));
}
const entities = Object.freeze({
'"': '"',
'&': '&',
"'": ''',
'<': '<',
'>': '>',
});
export default escapeHTML;