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 версии гораздо больше проверок, на гитхаб репозитории можете запустить тесты, но она может не пропустить множество слов не имеющих матерного смысла
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.