profanity-cleaner
Version:
A simple and lightweight JavaScript library that helps you clean profane or inappropriate words from a given text
153 lines (101 loc) • 4.08 kB
Markdown
A simple and lightweight JavaScript library that helps you clean profane or inappropriate words from a given text. It provides a simple API that you can use to filter out bad words and replace them with asterisks or any other character of your choice. The library uses a predefined list of bad words that can be customized to fit your specific requirements.
To install the package, run the following command:
```bash
npm install profanity-cleaner
```
Use directly in the browser with [jsDelivr](https://www.jsdelivr.com/package/npm/profanity-cleaner) or [unpkg](https://unpkg.com/profanity-cleaner/) by including the following script tag in your HTML file.
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Profanity Cleaner</title>
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/profanity-cleaner@latest"></script>
<script>
const text = "What the hell is going on?";
const cleanedText = profanityCleaner.clean(text);
console.log(cleanedText) // What the **** is going on?
</script>
</body>
</html>
```
Import the clean function and call it with a string argument to censor bad words in the text.
```javascript
import { clean } from 'profanity-cleaner';
const text = "Don't be an ash0le";
console.log(clean(text)) // Don't be an ******
```
You can pass options to the clean function as a second argument. The following options are available:
*Type* : `string`
*Default* : `*`
The character to use as a placeholder for the bad words.
```javascript
import { clean } from 'profanity-cleaner';
const text = "This is a funck!ng test";
console.log(clean(text, { placeholder: '#' }))
// OUTPUT: This is a f####g test
```
*Type* : `function`
*Default* : `null`
A function that returns a string to replace the bad words with. The function is passed the bad word as an argument.
```javascript
import { clean } from 'profanity-cleaner';
const text = "This is a funck!ng test";
console.log(clean(text, { customReplacement: (word) => word.toUpperCase() }))
// OUTPUT: This is a FUNCK!NG test
```
*Type* : `boolean`
*Default* : `false`
Whether to keep the first and last character of the bad word.
```javascript
import { clean } from 'profanity-cleaner';
const text = "This is a funck!ng test";
console.log(clean(text, { keepFirstAndLastChar: true }))
// OUTPUT: This is a f****g test
```
*Type* : `function`
*Default* : `null`
A function that returns a boolean to determine whether a word should be censored. The function is passed the bad word as an argument. In the following example, only words with an odd number of characters are censored.
```javascript
import { clean } from 'profanity-cleaner';
const text = "This is a funck!ng test";
console.log(clean(text, { customMatch: (word) => word.length % 2 != 0 }))
// OUTPUT: This is a f*****g test
```
*Type* : `array`
*Default* : `[]`
An array of words that should not be censored. In the following example, the word `hell` is not censored.
```javascript
import { clean } from 'profanity-cleaner';
const exceptionalWords = ['hell'];
const text = "What the hell is going on?";
console.log(clean(text, { exceptions: exceptionalWords }))
// OUTPUT: What the hell is going on?
```
*Type* : `array`
An array of words that should be censored. In the following example, the word `bad` is censored.
```javascript
import { clean } from 'profanity-cleaner';
const badWordsArray = ['bad', 'evil'];
const text = "This is a bad example";
console.log(clean(text, { customBadWords: badWordsArray }))
// OUTPUT: This is a *** example
```
* The list of bad words used in this library was sourced from the [badwords](https://github.com/web-mech/badwords) project.
`profanity-cleaner` is released under the [MIT License](LICENSE).