voca
Version:
The ultimate JavaScript string library
48 lines (42 loc) • 1.46 kB
JavaScript
import './internal/is_nil.js';
import './is_string.js';
import { c as coerceToString } from './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 = coerceToString(subject);
return characters.reduce(reduceUnescapedString, subjectString);
}
export default unescapeHtml;