node-profanity-filter
Version:
A Node.js profanity filter with support for exact matching, obfuscated word detection, and customizable replacement.
77 lines (55 loc) • 2.34 kB
Markdown
A Node.js profanity filter with support for exact matching, obfuscated word detection, and customizable replacement.
- [Installation](
- [Usage](
- [License](
- [Author](
You can install the `node-profanity-filter` package using npm:
```bash
npm install node-profanity-filter
```
```javascript
import { Filter } from 'node-profanity-filter';
const filter = new Filter({
wordBoundaries: true,
parseObfuscated : true,
replaceWith: '',
disableDefaultList: false, // true to start with empty word list
excludeWords: [
'excluded-badword'
],
includeWords: [
'math'
]
});
// true
console.log(filter.isProfane('badword'));
// false
console.log(filter.isProfane('goodword'));
// true (due to parseObfuscated)
console.log(filter.isProfane('b@dw0rd'));
// false (due to excludeWords)
console.log(filter.isProfane('excluded-badword'));
// true (due to includeWords)
console.log(filter.isProfane('math'));
// result: I like your .
console.log(filter.sanitize('I like your badword.'));
// result: I like your cat.
console.log(filter.sanitize('I like your badword.', 'cat'));
```
| Option | Type | Default | Description |
|-------------------|------------|---------|--------------------------------------------------------------|
| `wordBoundaries` | boolean | false | Match only whole words instead of substrings |
| `parseObfuscated` | boolean | true | Normalize common character obfuscations before matching |
| `replaceWith` | string | '' | String to replace detected profane words with |
| `disableDefaultList` | boolean | false | Disable the default profanity word list |
| `excludeWords` | string[] | [] | List of words to exclude from filtering |
| `includeWords` | string[] | [] | List of additional words to include in filtering |
Created by [Crytek1012](https://github.com/Crytek1012).
This project is licensed under the [MIT License](LICENSE).