

npm i -s badwords-filter
An easy-to-use word filter with advanced detection techniques. A lightweight package with zero dependencies.
- no case-sensitivity
- detects L33t text
- detects accented characters
- detects extra/missing repeated characters
- works with regex strings or normal strings
const Filter = require("badwords-filter");
const config = {
list: ["test", "hello"],
cleanWith: "$",
useRegex: false,
};
const filter = new Filter(config);
| Property |
Type |
Default |
Description |
list |
Array |
en.json filterset |
Array of filters in string format |
cleanWith |
String |
"*" |
Character or array of strings to replace bad words with in clean function |
useRegex |
boolean |
false |
Option to convert strings in list to regex expressions |
| Function |
Parameters |
Returns |
Description |
normalize |
String message to normalize |
String normalized message |
converts to lowercase, normalizes accented characters, converts l33t text to normal text, removes excess non-alphabetical characters (automatically used in all package functions) |
isUnclean |
String message to check for cleanliness |
Boolean true if contains any filtered word |
parses message for any filtered words |
clean |
String message to clean |
String cleaned message |
replaces all filtered words with cleanWith character or a random string |
getUncleanWordIndexes |
String message to parse |
Array <number> indexes of words that contain filtered words |
gets indexes of all filtered words |
isWordUnclean |
String word to check |
Boolean true if word is detected as a filtered word |
checks if a word is filtered |
debug |
String message to test |
undefined |
prints to console the outputs of all functions on the given string |
const Filter = require("badwords-filter");
const config = { list: ["hello"] };
const filter = new Filter(config);
filter.isUnclean("hello");
filter.isUnclean("HeLlO");
filter.isUnclean("h3ll0");
filter.isUnclean("heeeellloooo");
filter.isUnclean("heeeeellllooooooo there!!!");
filter.isUnclean("héllo");
filter.isUnclean("h.#ell-o");
const Filter = require("badwords-filter");
const filter = new Filter({ list: ["badword"] });
filter.isUnclean("This sentence contains 'badword'");
filter.isUnclean("This sentence does not contain any nasty words");
filter.clean("This sentence contains 'badword'");
filter.getUncleanWordIndexes("This sentence contains 'badword'");
filter.getUncleanWordIndexes("baaadword, goodword, okayword, badword");
filter.isUnclean("baaaaaadw0rd");
const Filter = require("badwords-filter");
const filter = new Filter({
list: ["b.+d"],
useRegex: true,
});
filter.isUnclean("marching band");
filter.clean("marching band");
- support with phrases
- detects words with whitespace seperation
- more efficiency optimization
- sensitivity option for detection