21 lines
659 B
JavaScript
21 lines
659 B
JavaScript
|
var makeString = require('./helper/makeString');
|
||
|
var htmlEntities = require('./helper/htmlEntities');
|
||
|
|
||
|
module.exports = function unescapeHTML(str) {
|
||
|
return makeString(str).replace(/\&([^;]+);/g, function(entity, entityCode) {
|
||
|
var match;
|
||
|
|
||
|
if (entityCode in htmlEntities) {
|
||
|
return htmlEntities[entityCode];
|
||
|
/*eslint no-cond-assign: 0*/
|
||
|
} else if (match = entityCode.match(/^#x([\da-fA-F]+)$/)) {
|
||
|
return String.fromCharCode(parseInt(match[1], 16));
|
||
|
/*eslint no-cond-assign: 0*/
|
||
|
} else if (match = entityCode.match(/^#(\d+)$/)) {
|
||
|
return String.fromCharCode(~~match[1]);
|
||
|
} else {
|
||
|
return entity;
|
||
|
}
|
||
|
});
|
||
|
};
|