UNPKG

bad-word-checker

Version:

A comprehensive JavaScript package for detecting, counting, and filtering profane or inappropriate words in text content, with support for both English and Hindi bad words

220 lines (152 loc) 5.94 kB
# 🛑 bad-word-checker A comprehensive JavaScript package for detecting, counting, and filtering profane or inappropriate words in text content. Supports both **English** and **Hindi** bad words out of the box. [![npm version](https://img.shields.io/npm/v/bad-word-checker.svg)](https://www.npmjs.com/package/bad-word-checker) [![npm downloads](https://img.shields.io/npm/dm/bad-word-checker.svg)](https://www.npmjs.com/package/bad-word-checker) [![license](https://img.shields.io/github/license/arpitbhatia23/bad_work_cheker.svg)](https://github.com/arpitbhatia23/bad_work_cheker/blob/main/LICENSE) ## 🌟 Why choose bad-word-checker? - 🔍 **Accurate Detection**: Precisely identifies inappropriate language - 🌐 **Multilingual Support**: Built-in support for both English and Hindi profanity - ⚙️ **Customizable**: Easily add or remove words from the detection list - 🛡️ **Content Protection**: Keep your application's content clean and appropriate - 🚀 **Simple API**: Easy to integrate with minimal configuration - 🔧 **Lightweight**: Zero dependencies, minimal impact on your bundle size ## 📦 Installation ```bash npm install bad-word-checker ``` ## 🚀 Usage ### Basic Usage ```javascript import BadWords from "bad-word-checker"; // Initialize with default bad words (English and Hindi) const badWordsFilter = new BadWords(); // Check if text contains any bad words const hasBadWords = badWordsFilter.detect( "This text might have some bad words" ); console.log(hasBadWords); // true or false // Clean bad words from text (replace with asterisks) const cleanText = badWordsFilter.cleanWords( "This text might have some bad words" ); console.log(cleanText); // "This text might have some *** ***" ``` ### Advanced Usage ```javascript // Initialize with default words plus custom bad words const customBadWords = ["custom", "inappropriate", "words"]; const badWordsFilter = new BadWords(customBadWords); // Add more words to the bad words list badWordsFilter.addWords(["more", "bad", "words"]); // Remove words from the bad words list badWordsFilter.removeWords(["words"]); // Get all bad words found in text const foundBadWords = badWordsFilter.getBadWordsFromText( "This text has some bad words" ); console.log(foundBadWords); // ["bad", "words"] // Count bad words in text const count = badWordsFilter.countBadWords("This text has some bad words"); console.log(count); // 2 // Check if a specific word is in the bad words list const isBad = badWordsFilter.hasExactBadWord("bad"); console.log(isBad); // true // Clean bad words with a custom mask character const cleanText = badWordsFilter.cleanWords( "This text has some bad words", "#" ); console.log(cleanText); // "This text has some ### #####" ``` ## 📚 API Reference ### Constructor ```javascript new BadWords((customWords = [])); ``` - `customWords` (optional): Array of additional words to be considered inappropriate ### Methods #### detect(text) Checks if the given text contains any bad words. - Returns: `boolean` #### getBadWordsFromText(text) Returns an array of all bad words found in the text. - Returns: `string[]` #### countBadWords(text) Returns the count of bad words in the text. - Returns: `number` #### addWords(wordsArray = []) Adds words to the bad words list. - `wordsArray`: Array of words to add #### removeWords(wordsArray = []) Removes words from the bad words list. - `wordsArray`: Array of words to remove #### hasExactBadWord(word) Checks if the exact word is in the bad words list. - Returns: `boolean` #### cleanWords(text, maskChar = "\*") Replaces all bad words in the text with the specified mask character. - `text`: The text to clean - `maskChar`: Character used to mask bad words (default: "\*") - Returns: `string` ## 🔍 Use Cases - **Chat Applications**: Filter inappropriate messages - **User Comments**: Moderate user-generated content - **Social Media**: Detect and censor offensive language - **Children's Applications**: Ensure content remains age-appropriate - **Content Management Systems**: Automate content moderation - **Forums & Message Boards**: Maintain community standards ## 📝 Examples ### Filtering User Input ```javascript import BadWords from "bad-word-checker"; function handleUserSubmit(userContent) { const filter = new BadWords(); if (filter.detect(userContent)) { return { success: false, message: "Please remove inappropriate language", badWordsCount: filter.countBadWords(userContent), }; } return { success: true, content: userContent, }; } ``` ### Creating a Comment Moderation System ```javascript import BadWords from "bad-word-checker"; class CommentModerator { constructor() { this.filter = new BadWords(); // Add application-specific words this.filter.addWords(["unwanted", "custom", "terms"]); } moderateComment(comment) { // Replace bad words with asterisks return this.filter.cleanWords(comment); } validateComment(comment) { const badWordsList = this.filter.getBadWordsFromText(comment); if (badWordsList.length > 0) { return { valid: false, reason: "Contains inappropriate words", words: badWordsList, }; } return { valid: true }; } } ``` ## 📋 License MIT ## 👨‍💻 Contributing Contributions are welcome! Please feel free to submit a Pull Request. 1. Fork the repository 2. Create your feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'Add some amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request Made with ❤️ for content moderation