
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
parse-entities
Advanced tools
Parse HTML character references: fast, spec-compliant, positional information
The parse-entities npm package is used to parse HTML entities in text. It can decode named and numerical character references in HTML, making it useful for processing and sanitizing HTML content.
Decode named character references
This feature allows you to decode named character references in a string. For example, it converts " to ".
const parseEntities = require('parse-entities');
const decoded = parseEntities('The "quick" brown fox');
console.log(decoded); // Output: The "quick" brown fox
Decode numerical character references
This feature allows you to decode numerical character references in a string. For example, it converts 😀 to 😀.
const parseEntities = require('parse-entities');
const decoded = parseEntities('The 😀 emoji');
console.log(decoded); // Output: The 😀 emoji
Decode mixed character references
This feature allows you to decode a mix of named and numerical character references in a string.
const parseEntities = require('parse-entities');
const decoded = parseEntities('The "quick" brown fox jumps over the lazy dog🐶');
console.log(decoded); // Output: The "quick" brown fox jumps over the lazy dog🐶
The 'he' package (short for HTML entities) is a robust HTML entity encoder/decoder. It supports both named and numerical character references and offers more configuration options compared to parse-entities.
The 'entities' package is another library for encoding and decoding XML and HTML entities. It provides similar functionality to parse-entities but also includes support for encoding entities, which parse-entities does not offer.
The 'html-entities' package provides methods to encode and decode HTML entities. It supports both named and numerical references and offers additional features like encoding non-ASCII characters.
Parse HTML character references: fast, spec-compliant, positional information.
npm:
npm install parse-entities
var decode = require('parse-entities')
decode('alpha & bravo')
// => alpha & bravo
decode('charlie ©cat; delta')
// => charlie ©cat; delta
decode('echo © foxtrot ≠ golf 𝌆 hotel')
// => echo © foxtrot ≠ golf 𝌆 hotel
parseEntities(value[, options])
options
options.additional
Additional character to accept (string?
, default: ''
).
This allows other characters, without error, when following an ampersand.
options.attribute
Whether to parse value
as an attribute value (boolean?
, default:
false
).
options.nonTerminated
Whether to allow non-terminated entities (boolean
, default: true
).
For example, ©cat
for ©cat
. This behaviour is spec-compliant but
can lead to unexpected results.
options.warning
Error handler (Function?
).
options.text
Text handler (Function?
).
options.reference
Reference handler (Function?
).
options.warningContext
Context used when invoking warning
('*'
, optional).
options.textContext
Context used when invoking text
('*'
, optional).
options.referenceContext
Context used when invoking reference
('*'
, optional)
options.position
Starting position
of value
(Location
or Position
, optional). Useful
when dealing with values nested in some sort of syntax tree. The default is:
{
start: {line: 1, column: 1, offset: 0},
indent: []
}
string
— Decoded value
.
function warning(reason, position, code)
Error handler.
this
refers to warningContext
when given to parseEntities
.
reason
Human-readable reason for triggering a parse error (string
).
position
Place at which the parse error occurred (Position
).
code
Identifier of reason for triggering a parse error (number
).
The following codes are used:
Code | Example | Note |
---|---|---|
1 | foo & bar | Missing semicolon (named) |
2 | foo { bar | Missing semicolon (numeric) |
3 | Foo &bar baz | Ampersand did not start a reference |
4 | Foo &# | Empty reference |
5 | Foo &bar; baz | Unknown entity |
6 | Foo € baz | Disallowed reference |
7 | Foo � baz | Prohibited: outside permissible unicode range |
function text(value, location)
Text handler.
this
refers to textContext
when given to parseEntities
.
value
String of content (string
).
location
Location at which value
starts and ends (Location
).
function reference(value, location, source)
Character reference handler.
this
refers to referenceContext
when given to parseEntities
.
value
Encoded character reference (string
).
location
Location at which value
starts and ends (Location
).
source
Source of character reference (Location
).
stringify-entities
— Encode HTML character referencescharacter-entities
— Info on character entitiescharacter-entities-html4
— Info on HTML4 character entitiescharacter-entities-legacy
— Info on legacy character entitiescharacter-reference-invalid
— Info on invalid numeric character referencesFAQs
Parse HTML character references
The npm package parse-entities receives a total of 6,290,813 weekly downloads. As such, parse-entities popularity was classified as popular.
We found that parse-entities demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.