README
πββοΈ Encode Entities π
πββοΈ Fast and simple Map and RegExp based HTML entities encoder.π
Fast and simple Map and RegExp based HTML entities encoder. In order to overcome different methods of possible XSS attacks, it by default encodes the following characters: <, >, ", ', &, =, `, !, @, $, %, (, ), +, {, }, [, ].
You can however remove any of these rules and/or add your own.
Uses the MappedReplacer package.
β¨Since version 1.1.0
Encode Entities
is a hybrid module that supports both CommonJS (legacy) and ES modules, thanks to Modern Module.
Table of Contents
Install
npm i encode-entities
API
resetRules(): void
Resets the rules to the default ones.
const Encoder = require('encode-entities')
const encoder = new Encoder()
encoder.addRule('<', 'π')
encoder.addRule('>', 'π')
encoder.resetRules()
console.log(encoder.encode('<strong>')) // outputs '<strong>'
addRule(key: string, value: string): boolean
Adds a new rule or updates the existing rule for entities encoding. Returns true if the rule was added successfully or false if not.
const Encoder = require('encode-entities')
const encoder = new Encoder()
encoder.addRule('β', '→')
console.log(encoder.encode('<a href="#">β</a>')) // outputs '<a href="#">→</a>'
addRules(rules: Object): boolean
Adds rules or updates the existing rules for entity encoding.
Passed object is a simple key-value object, i.e. { '<': '<', '>': '>' }
Returns true if the rules were added successfully or false if not.
const Encoder = require('encode-entities')
const encoder = new Encoder()
encoder.addRules({
'π': '𝕋',
'β': '≈',
'π±': '𝔱',
})
console.log(encoder.encode('<span>π β π±</span>')) // outputs '<span>𝕋 ≈ 𝔱</span>'
removeRule(key: string): boolean
Removes the rule that matches the provided key. Returns true if the rule was removed successfully or false if not.
const Encoder = require('encode-entities')
const encoder = new Encoder()
encoder.addRules({
'π': '𝕋',
'β': '≈',
'π±': '𝔱',
})
encoder.removeRule('β')
console.log(encoder.rulesCount()) // outputs 20
rulesCount(): number
Gets the number of rules for entity encoding.
const Encoder = require('encode-entities')
const encoder = new Encoder()
encoder.addRules({
'π': '𝕋',
'β': '≈',
'π±': '𝔱',
})
console.log(encoder.rulesCount()) // outputs 21
encode()
Encodes special characters in the given string to HTML entities.
const Encoder = require('encode-entities')
const encoder = new Encoder()
console.log(encoder.encode('<strong>')) // outputs '<strong>'
Test
npm test