@kpachbiu/censure-js
Version:
Dirty russian/english words filter
62 lines (38 loc) • 2.8 kB
Markdown
This TypeScript library provides robust and customizable filtering of swear words and offensive language from text.
**Multiple Filtering Modes**:** Choose from blacklist (exact word matching), whitelist (allowing only specific words), and regular expression-based filtering for highly flexible control.
**Customizable Word Lists:** Easily add, remove, or modify swear words to tailor the filter to your specific needs and context. Support for multiple languages is easily implemented by adding language-specific word lists.
**Contextual Awareness:** Employ advanced techniques to reduce false positives by considering word context (e.g., "ass" in "assassin" would not be flagged). This feature may require additional configuration or external dependencies.
**Performance Optimization:** Designed for efficiency, minimizing impact on application performance, even with large word lists.
**Easy Integration:** Clean, well-documented API for seamless integration into any TypeScript project.
**Extensibility:** Easily extend the functionality with custom filters and pre-processing logic.
## Support languages
* English
* Russian
### Regex types:
``тупица`` **тупица**, потупицива, потупица, тупицава // не использовать объединение |
``тупиц[а-я]+`` **тупиц**а, по**тупиц**ива, по**тупиц**а, **тупиц**ава
``^тупиц[а-я]+ `` **тупиц**а, потупицива, потупица, **тупиц**ава
``туп|тупиц[а-я]+`` **туп**ица, по**тупиц**ива, потупица, тупицава
``потуп|тупица`` **тупица**, **потуп**ицива, по**тупица**, **тупица**ва
Комбинируйте правил через | для быстрой работы
- Whole word - ``cunt``
**cuntamulungo** return false, **cunt** - return true
- Part of a word with any letters further - ``ass[a-z]+``
**asshole** and **assist** return true
- Starts with part of a word with any letters further - ``^ass[a-z]+``
**asshole** and **assist** return true
Part of word and Combine part of words can be union, for example:
``cunt|ass|ass[a-z]+|^ass[a-z]+``
### Get started:
```js
import Censure from 'censure-js'
const censure = new Censure();
// Searches if there any abusive words in the text
censure.isBad('Original phrase with abusive words'); // return: bool
// Replace abusive words from string
censure.replace('Original phrase with abusive words'); // return: string (cleaned text)
// Fixing abusive words inside string
censure.fix('Original phrase with abusive words'); // return: string (fixed text)
```