123456789101112131415161718192021222324252627282930 |
- '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
- }
|