voca
Version:
The ultimate JavaScript string library
50 lines (43 loc) • 1.5 kB
JavaScript
;
require('./internal/is_nil.js');
require('./is_string.js');
var coerce_to_string = require('./internal/coerce_to_string.js');
var unescapeCharactersMap = {
'<': /(<)|(�*3c;)|(�*60;)/gi,
'>': /(>)|(�*3e;)|(�*62;)/gi,
'&': /(&)|(�*26;)|(�*38;)/gi,
'"': /(")|(�*22;)|(�*34;)/gi,
"'": /(�*27;)|(�*39;)/gi,
'`': /(�*60;)|(�*96;)/gi
};
var characters = Object.keys(unescapeCharactersMap);
/**
* Replaces the HTML entities with corresponding characters.
*
* @ignore
* @param {string} string The accumulator string.
* @param {string} key The character.
* @return {string} The string with replaced HTML entity
*/
function reduceUnescapedString(string, key) {
return string.replace(unescapeCharactersMap[key], key);
}
/**
* Unescapes HTML special characters from <code>&lt; &gt; &amp; &quot; &#x27; &#x60;</code>
* to corresponding <code>< > & ' " `</code> in <code>subject</code>.
*
* @function unescapeHtml
* @static
* @since 1.0.0
* @memberOf Escape
* @param {string} [subject=''] The string to unescape.
* @return {string} Returns the unescaped string.
* @example
* v.unescapeHtml('<p>wonderful world</p>');
* // => '<p>wonderful world</p>'
*/
function unescapeHtml(subject) {
var subjectString = coerce_to_string.coerceToString(subject);
return characters.reduce(reduceUnescapedString, subjectString);
}
module.exports = unescapeHtml;