3.2.0 • Published 3 years ago
striptags v3.2.0
striptags (WIP)
An implementation of PHP's strip_tags in Typescript.
Highlights
- No dependencies
- Prevents XSS by default
Installing
npm install striptagsBasic Usage
// commonjs format
striptags(text: string, options?: Partial<StateMachineOptions>): string;Examples
// commonjs format
const striptags = require("striptags").striptags;
// alternatively:
// import { striptags } from "striptags";
var html = `
<a href="https://example.com">lorem ipsum <strong>dolor</strong> <em>sit</em> amet</a>
`.trim();
console.log(striptags(html));
console.log(striptags(html, {allowedTags: new Set(["strong"])}));
console.log(striptags(html, {tagReplacementText: "🍩"}));Outputs:
lorem ipsum dolor sit amet
lorem ipsum <strong>dolor</strong> sit amet
🍩lorem ipsum 🍩dolor🍩 🍩sit🍩 amet🍩Advanced Usage
class StateMachine {
constructor(partialOptions?: Partial<StateMachineOptions>);
consume(text: string): string;
}The StateMachine class is similar to the striptags function, but persists state across calls to consume() so that you may safely pass in a stream of text. For example:
const StateMachine = require("striptags").StateMachine;
// alternatively:
// import { StateMachine } from "striptags";
const instance = new StateMachine();
console.log(
instance.consume("some text with <a") + instance.consume("tag>and more text")
);Outputs:
some text with and more textOptions
allowedTags: Set<string>a set containing a list of tag names to allow (e.g.new Set(["tagname"])), default:new Set([]).tagReplacementText: stringa string to use as replacement text when a tag is found and not allowed, default:"".encodePlaintextTagDelimiters: booleantrue if<and>characters immediately followed by whitespace should be HTML encoded, default:true. This is safe to set tofalseif the output is expected to be used only as plaintext.
4.0.0-alpha.3
3 years ago
4.0.0-alpha.4
3 years ago
3.2.0
4 years ago
4.0.0-alpha.2
5 years ago
4.0.0-alpha.1
5 years ago
4.0.0-alpha.0
5 years ago
3.1.1
8 years ago
3.1.0
8 years ago
3.0.1
9 years ago
3.0.0
9 years ago
2.2.1
9 years ago
2.2.0
9 years ago
2.1.1
10 years ago
2.1.0
10 years ago
2.0.4
10 years ago
2.0.3
10 years ago
2.0.2
11 years ago
2.0.1
11 years ago
2.0.0
11 years ago
1.0.0
11 years ago