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
Markdown
# 🛑 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.
[](https://www.npmjs.com/package/bad-word-checker)
[](https://www.npmjs.com/package/bad-word-checker)
[](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