24 lines
581 B
JavaScript
24 lines
581 B
JavaScript
|
const { replace } = ''
|
||
|
|
||
|
// escape
|
||
|
const es = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g
|
||
|
const ca = /[&<>'"]/g
|
||
|
|
||
|
const esca = {
|
||
|
'&': '&',
|
||
|
'<': '<',
|
||
|
'>': '>',
|
||
|
"'": ''',
|
||
|
'"': '"',
|
||
|
}
|
||
|
const pe = (m) => esca[m]
|
||
|
|
||
|
/**
|
||
|
* Safely escape HTML entities such as `&`, `<`, `>`, `"`, and `'`.
|
||
|
* @param {string} es the input to safely escape
|
||
|
* @returns {string} the escaped input, and it **throws** an error if
|
||
|
* the input type is unexpected, except for boolean and numbers,
|
||
|
* converted as string.
|
||
|
*/
|
||
|
export const escape = (es) => replace.call(es, ca, pe)
|