htmled
Version:
A simple JavaScript library for encoding and decoding HTML entities.
273 lines (269 loc) • 5.74 kB
JavaScript
const htmlEntities = {
''': "'",
'"': '"',
'&': '&',
'<': '<',
'>': '>',
' ': ' ',
'¡': '¡',
'¢': '¢',
'£': '£',
'¤': '¤',
'¥': '¥',
'¦': '¦',
'§': '§',
'¨': '¨',
'©': '©',
'ª': 'ª',
'«': '«',
'¬': '¬',
'­': '',
'®': '®',
'¯': '¯',
'°': '°',
'±': '±',
'²': '²',
'³': '³',
'´': '´',
'µ': 'µ',
'¶': '¶',
'·': '·',
'¸': '¸',
'¹': '¹',
'º': 'º',
'»': '»',
'¼': '¼',
'½': '½',
'¾': '¾',
'¿': '¿',
'À': 'À',
'Á': 'Á',
'Â': 'Â',
'Ã': 'Ã',
'Ä': 'Ä',
'Å': 'Å',
'Æ': 'Æ',
'Ç': 'Ç',
'È': 'È',
'É': 'É',
'Ê': 'Ê',
'Ë': 'Ë',
'Ì': 'Ì',
'Í': 'Í',
'Î': 'Î',
'Ï': 'Ï',
'Ð': 'Ð',
'Ñ': 'Ñ',
'Ò': 'Ò',
'Ó': 'Ó',
'Ô': 'Ô',
'Õ': 'Õ',
'Ö': 'Ö',
'×': '×',
'Ø': 'Ø',
'Ù': 'Ù',
'Ú': 'Ú',
'Û': 'Û',
'Ü': 'Ü',
'Ý': 'Ý',
'Þ': 'Þ',
'ß': 'ß',
'à': 'à',
'á': 'á',
'â': 'â',
'ã': 'ã',
'ä': 'ä',
'å': 'å',
'æ': 'æ',
'ç': 'ç',
'è': 'è',
'é': 'é',
'ê': 'ê',
'ë': 'ë',
'ì': 'ì',
'í': 'í',
'î': 'î',
'ï': 'ï',
'ð': 'ð',
'ñ': 'ñ',
'ò': 'ò',
'ó': 'ó',
'ô': 'ô',
'õ': 'õ',
'ö': 'ö',
'÷': '÷',
'ø': 'ø',
'ù': 'ù',
'ú': 'ú',
'û': 'û',
'ü': 'ü',
'ý': 'ý',
'þ': 'þ',
'ÿ': 'ÿ',
'Œ': 'Œ',
'œ': 'œ',
'Š': 'Š',
'š': 'š',
'Ÿ': 'Ÿ',
'ƒ': 'ƒ',
'ˆ': 'ˆ',
'˜': '˜',
'Α': 'Α',
'Β': 'Β',
'Γ': 'Γ',
'Δ': 'Δ',
'Ε': 'Ε',
'Ζ': 'Ζ',
'Η': 'Η',
'Θ': 'Θ',
'Ι': 'Ι',
'Κ': 'Κ',
'Λ': 'Λ',
'Μ': 'Μ',
'Ν': 'Ν',
'Ξ': 'Ξ',
'Ο': 'Ο',
'Π': 'Π',
'Ρ': 'Ρ',
'Σ': 'Σ',
'Τ': 'Τ',
'Υ': 'Υ',
'Φ': 'Φ',
'Χ': 'Χ',
'Ψ': 'Ψ',
'Ω': 'Ω',
'α': 'α',
'β': 'β',
'γ': 'γ',
'δ': 'δ',
'ε': 'ε',
'ζ': 'ζ',
'η': 'η',
'θ': 'θ',
'ι': 'ι',
'κ': 'κ',
'λ': 'λ',
'μ': 'μ',
'ν': 'ν',
'ξ': 'ξ',
'ο': 'ο',
'π': 'π',
'ρ': 'ρ',
'ς': 'ς',
'σ': 'σ',
'τ': 'τ',
'υ': 'υ',
'φ': 'φ',
'χ': 'χ',
'ψ': 'ψ',
'ω': 'ω',
'ϑ': 'ϑ',
'ϒ': 'ϒ',
'ϖ': 'ϖ',
' ': ' ',
' ': ' ',
' ': ' ',
'‌': '',
'‍': '',
'‎': '',
'‏': '',
'–': '–',
'—': '—',
'‘': '‘',
'’': '’',
'‚': '‚',
'“': '“',
'”': '”',
'„': '„',
'†': '†',
'‡': '‡',
'•': '•',
'…': '…',
'‰': '‰',
'′': '′',
'″': '″',
'‹': '‹',
'›': '›',
'‾': '‾',
'⁄': '⁄',
'€': '€',
'ℑ': 'ℑ',
'℘': '℘',
'ℜ': 'ℜ',
'™': '™',
'ℵ': 'ℵ',
'←': '←',
'↑': '↑',
'→': '→',
'↓': '↓',
'↔': '↔',
'↵': '↵',
'⇐': '⇐',
'⇑': '⇑',
'⇒': '⇒',
'⇓': '⇓',
'⇔': '⇔',
'∀': '∀',
'∂': '∂',
'∃': '∃',
'∅': '∅',
'∇': '∇',
'∈': '∈',
'∉': '∉',
'∋': '∋',
'∏': '∏',
'∑': '∑',
'−': '−',
'∗': '∗',
'√': '√',
'∝': '∝',
'∞': '∞',
'∠': '∠',
'∧': '∧',
'∨': '∨',
'∩': '∩',
'∪': '∪',
'∫': '∫',
'∴': '∴',
'∼': '∼',
'≅': '≅',
'≈': '≈',
'≠': '≠',
'≡': '≡',
'≤': '≤',
'≥': '≥',
'⊂': '⊂',
'⊃': '⊃',
'⊄': '⊄',
'⊆': '⊆',
'⊇': '⊇',
'⊕': '⊕',
'⊗': '⊗',
'⊥': '⊥',
'⋅': '⋅',
'⌈': '⌈',
'⌉': '⌉',
'⌊': '⌊',
'⌋': '⌋',
'⟨': '〈',
'⟩': '〉',
'◊': '◊',
'♠': '♠',
'♣': '♣',
'♥': '♥',
'♦': '♦'
};
const htmled = {
encode: function(html) {
return html.replace(/[&<>"']/g, match => htmlEntities[match]);
},
decode: function(html) {
return html.replace(/&#?\w+;/g, match => {
return entities[match] || match;
});
}
};
// Export the object if in a Node.js environment
if (typeof module !== 'undefined' && module.exports) {
module.exports = htmled;
}