russian-bad-word-censor
v2.1.8
Published
A powerful and lightweight library for detecting and censoring Russian bad words and profanity in text. Supports advanced character substitution (e.g., 'з' to '3' or 'a' to '@') and customizable patterns for accurate filtering. Ideal for content moderatio
Maintainers
Keywords
Readme
Russian-Bad-Words
Russian-Bad-Word — это библиотека для поиска и замены нецензурных слов в тексте. Она поддерживает обработку текста на русском, учитывает замены символов (например, "з" на "3" или "a" на "@") и позволяет добавлять собственные шаблоны для поиска нецензурных слов.
Установка
Вы можете установить Russian-Bad-Word с помощью npm:
npm i russian-bad-word-censorс помощью yarn:
yarn add russian-bad-word-censorИспользование
Основной пример
Использование Основной пример
import RuCensor from 'russian-bad-word-censor';
const censor = new RuCensor('strict');
// Пример текста
const text = 'Этот текст содержит нецензурное слово: х*y';
// Проверка и замена нецензурных слов
const result = censor.replace(text, '*');
const isNeededToCheck = censor.isContainsBadWords(text); // bool
console.log(result);
// Output: "Этот текст содержит нецензурное слово: ***"
console.log(isNeededToCheck);
// Output: trueДобавление собственных шаблонов
Вы можете добавлять собственные шаблоны для поиска нецензурных слов:
const censor = new RuCensor('strict');
censor.addBadWordPattern('[о][н]');
const text = 'Он шёл по дорожке';
const result = censor.replace(text, '*');
console.log(result);
// Output: ** шёл по дорожкеДобавление слов, которые будут пропущены
Вы можете добавить слова, которые не будут считаться нецензурными:
const censor = new RuCensor();
censor.addPassPatterns(/заштрихуй/gi);
const text = 'Это слово заштрихуй не будет заменено.';
const result = censor.replace(text, '*');
console.log(result);
// Output: "Это слово заштрихуй не будет заменено."Очистка списков паттернов
const censor = new RuCensor('strict');
censor.addPassPatterns(/заштрихуй/gi);
// Очистка списка нецензурных слов
censor.clearBadWordPattern();
// Очистка списка слов для пропуска
censor.clearPassPatterns();Различие strict и normal версий
В strict версии гораздо больше проверок, на гитхаб репозитории можете запустить тесты, но она может не пропустить множество слов не имеющих матерного смысла
API
API
RuCensor.replace(text: string, replace: string): string
Проверяет текст на наличие нецензурных слов и заменяет их на указанную строку.
text: Текст для проверки.
replace: Строка для замены нецензурных слов.
Возвращает: Обработанный текст.
RuCensor.isContainsBadWords(text: string): boolean
Проверяет текст на наличие нецензурных слов.
text: Текст для проверки.
Возвращает: true, если найдены нецензурные слова, иначе false.
RuCensor.addBadWordPattern(pattern: string): void
Добавляет новый паттерн для поиска нецензурных слов.
- pattern: Регулярное выражение или строка для поиска.
RuCensor.addPassPatterns(word: string): void
Добавляет слово, которое будет пропущено при проверке.
- word: Слово, которое не будет считаться нецензурны
RuCensor.clearBadWordPattern(): void
Очищает список паттернов для строгой проверки нецензурных слов и слов добавленных вами.
RuCensor.clearPassPatterns(): void
Очищает список паттернов для слов, которые нужно пропустить.
RuCensor.getPretextPatterns(): string
Возвращает шаблон для приставок, используемых в нецензурных словах.
- Возвращает: Шаблон регулярного выражения, полезно для добавления новых слов
Идея алгоритма взята у https://github.com/rin-nas/php-censure.
