badwords-filter
    TypeScript icon, indicating that this package has built-in type declarations

    1.3.0 • Public • Published

    npm npm install size

    NPM

    badwords-filter

    Installation

    npm i -s badwords-filter
    

    An easy-to-use word filter with advanced detection techniques. A lightweight package with zero dependencies.

    Features

    • no case-sensitivity
    • detects L33t text
    • detects accented characters
    • detects extra/missing repeated characters
    • works with regex strings or normal strings

    Usage

    const Filter = require("badwords-filter");
    const config = {
    	list: ["test", "hello"],
    	cleanWith: "$",
    	useRegex: false,
    };
    const filter = new Filter(config);

    Configuration options for filter

    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

    Functions

    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

    Example Detection

    const Filter = require("badwords-filter");
    const config = { list: ["hello"] };
    const filter = new Filter(config);
    
    //All the following would return true
    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");

    Examples

    Using a custom filter list

    Normal strings filter

    const Filter = require("badwords-filter");
    const filter = new Filter({ list: ["badword"] });
    filter.isUnclean("This sentence contains 'badword'"); // true
    filter.isUnclean("This sentence does not contain any nasty words"); // false
    filter.clean("This sentence contains 'badword'"); // "This sentence contains *********"
    filter.getUncleanWordIndexes("This sentence contains 'badword'"); //[3]
    filter.getUncleanWordIndexes("baaadword, goodword, okayword, badword"); // [0,3]
    filter.isUnclean("baaaaaadw0rd"); //true

    Regex strings filter

    const Filter = require("badwords-filter");
    const filter = new Filter({
    	list: ["b.+d"], // any word that stars with b and ends with d
    	useRegex: true,
    });
    filter.isUnclean("marching band"); // true
    filter.clean("marching band"); // "marching ****"

    Future Features

    • support with phrases
    • detects words with whitespace seperation
    • more efficiency optimization
    • sensitivity option for detection
    
    

    Install

    npm i badwords-filter

    DownloadsWeekly Downloads

    354

    Version

    1.3.0

    License

    MIT

    Unpacked Size

    17.2 kB

    Total Files

    6

    Last publish

    Collaborators

    • 3chospirits