'use strict' /* eslint-env browser */ var el var semicolon = 59 // ';' module.exports = decodeEntity function decodeEntity(characters) { var entity = '&' + characters + ';' var char el = el || document.createElement('i') el.innerHTML = entity char = el.textContent // Some entities do not require the closing semicolon (`¬` - for instance), // which leads to situations where parsing the assumed entity of ¬it; will // result in the string `¬it;`. When we encounter a trailing semicolon after // parsing and the entity to decode was not a semicolon (`;`), we can // assume that the matching was incomplete if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') { return false } // If the decoded string is equal to the input, the entity was not valid return char === entity ? false : char }