This commit is contained in:
30
node_modules/parse-entities/decode-entity.browser.js
generated
vendored
Normal file
30
node_modules/parse-entities/decode-entity.browser.js
generated
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
'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
|
||||
}
|
||||
Reference in New Issue
Block a user