Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sapphdevelopment/badwords


https://github.com/sapphdevelopment/badwords

Last synced: 30 days ago
JSON representation

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