UNPKG

voca

Version:

The ultimate JavaScript string library

48 lines (42 loc) 1.46 kB
import './internal/is_nil.js'; import './is_string.js'; import { c as coerceToString } from './internal/coerce_to_string.js'; var unescapeCharactersMap = { '<': /(&lt;)|(&#x0*3c;)|(&#0*60;)/gi, '>': /(&gt;)|(&#x0*3e;)|(&#0*62;)/gi, '&': /(&amp;)|(&#x0*26;)|(&#0*38;)/gi, '"': /(&quot;)|(&#x0*22;)|(&#0*34;)/gi, "'": /(&#x0*27;)|(&#0*39;)/gi, '`': /(&#x0*60;)|(&#0*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>&amp;lt; &amp;gt; &amp;amp; &amp;quot; &amp;#x27; &amp;#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('&lt;p&gt;wonderful world&lt;/p&gt;'); * // => '<p>wonderful world</p>' */ function unescapeHtml(subject) { var subjectString = coerceToString(subject); return characters.reduce(reduceUnescapedString, subjectString); } export default unescapeHtml;