Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sapphdevelopment/badwords
https://github.com/sapphdevelopment/badwords
Last synced: 30 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/sapphdevelopment/badwords
- Owner: SapphDevelopment
- License: gpl-3.0
- Created: 2023-02-15T00:36:33.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-04-06T15:05:25.000Z (over 1 year ago)
- Last Synced: 2024-08-10T04:23:41.995Z (5 months ago)
- Language: JavaScript
- Size: 119 KB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[![@duckodas/badwords](https://nodei.co/npm/@duckodas/badwords.png)](https://nodei.co/npm/@duckodas/badwords/)
# @duckodas/badwords
A javascript filter for badwords
Supported Languages (ar, cs, da, de, en, eo, es, fa, fi, fil, fr, hi, hu, it, ja, kab, ko, nl, no, pl, pt)
[![DiscordBanner](https://invidget.switchblade.xyz/TKz7BMwEap)](https://discord.gg/TKz7BMwEap)
## Requirements
As of version 2, requires you either have an environment that understands ES2016 and beyond or a transpiler like Babel.
## Installation
npm i @duckodas/badwords
## Usage
```js
const Filter = require("@duckodas/badwords"),
const customFilter = new Filter();console.log(filter.clean("Don't be an ash0le")); //Don't be an ******
```### Placeholder Overrides
```js
const Filter = require("@duckodas/badwords");
const customFilter = new Filter({ placeHolder: "x" });customFilter.clean("Don't be an ash0le"); //Don't be an xxxxxx
```### Check if text has bad words
```js
const Filter = require("@duckodas/badwords");
const customFilter = new Filter();customFilter.hasBadwords("Don't be an ash0le"); // true
customFilter.hasBadwords("Don't be an cookie"); // false
```### Regex Overrides
```js
const Filter = new Filter({ regex: /\*|\.|$/gi });
const Filter2 = new Filter({ replaceRegex: /[A-Za-z0-9가-힣_]/g });
//multilingual support for word filtering
```### Add words to the blacklist
```js
const filter = new Filter();filter.addWords("some", "bad", "word");
filter.clean("some bad word!"); //**** *** ****!
//or use an array using the spread operator
let newBadWords = ["some", "bad", "word"];
filter.addWords(...newBadWords);
filter.clean("some bad word!"); //**** *** ****!
//or
const filter = new Filter({ list: ["some", "bad", "word"] });
filter.clean("some bad word!"); //**** *** ****!
```### Instantiate with an empty list
```js
const filter = new Filter({ emptyList: true });
filter.clean("hell this wont clean anything"); //hell this wont clean anything
```### Remove words from the blacklist
```js
let filter = new Filter();filter.removeWords("hells", "sadist");
filter.clean("some hells word!"); //some hells word!
//or use an array using the spread operator
let removeWords = ["hells", "sadist"];
filter.removeWords(...removeWords);
filter.clean("some sadist hells word!"); //some sadist hells word!
```### API
#### constructor
Filter constructor.
**Parameters**
- `options` **[object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Filter instance options (optional, default `{}`)
- `options.emptyList` **[boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Instantiate filter with no blacklist
- `options.list` **[array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)** Instantiate filter with custom list
- `options.placeHolder` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Character used to replace profane words.
- `options.regex` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Regular expression used to sanitize words before comparing them to blacklist.
- `options.replaceRegex` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Regular expression used to replace profane words with placeHolder.#### isProfane
Determine if a string contains profane language.
**Parameters**
- `string` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** String to evaluate for profanity.
#### replaceWord
Replace a word with placeHolder characters;
**Parameters**
- `string` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** String to replace.
#### clean
Evaluate a string for profanity and return an edited version.
**Parameters**
- `string` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Sentence to filter.
#### addWords
Add word(s) to blacklist filter / remove words from whitelist filter
**Parameters**
- `word` **...[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Word(s) to add to blacklist
#### removeWords
Add words to whitelist filter
**Parameters**
- `word` **...[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Word(s) to add to whitelist.
## Testing
npm test