Consolidate escape and unescape modules.

This commit is contained in:
John-David Dalton
2017-01-10 17:09:40 -08:00
parent fc1a360212
commit c5d4bb8dcb
4 changed files with 20 additions and 46 deletions

View File

@@ -1,5 +1,13 @@
import toString from './toString.js';
import unescapeHtmlChar from './.internal/unescapeHtmlChar.js';
/** Used to map HTML entities to characters. */
const htmlUnescapes = {
'&': '&',
'&lt;': '<',
'&gt;': '>',
'&quot;': '"',
'&#39;': "'"
};
/** Used to match HTML entities and HTML characters. */
const reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g;
@@ -25,7 +33,7 @@ const reHasEscapedHtml = RegExp(reEscapedHtml.source);
function unescape(string) {
string = toString(string);
return (string && reHasEscapedHtml.test(string))
? string.replace(reEscapedHtml, unescapeHtmlChar)
? string.replace(reEscapedHtml, entity => htmlUnescapes[entity])
: string;
}