es-toolkit
Version:
A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.
27 lines (26 loc) • 851 B
JavaScript
//#region src/string/unescape.ts
const htmlUnescapes = {
"&": "&",
"<": "<",
">": ">",
""": "\"",
"'": "'"
};
/**
* Converts the HTML entities `&`, `<`, `>`, `"`, and `'` in `str` to their corresponding characters.
* It is the inverse of `escape`.
*
* @param str The string to unescape.
* @returns Returns the unescaped string.
*
* @example
* unescape('This is a <div> element.'); // returns 'This is a <div> element.'
* unescape('This is a "quote"'); // returns 'This is a "quote"'
* unescape('This is a 'quote''); // returns 'This is a 'quote''
* unescape('This is a & symbol'); // returns 'This is a & symbol'
*/
function unescape(str) {
return str.replace(/&(?:amp|lt|gt|quot|#(0+)?39);/g, (match) => htmlUnescapes[match] || "'");
}
//#endregion
exports.unescape = unescape;