Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

russian-bad-word-censor

IvanMalkS56MIT1.1.7TypeScript support: included

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

russian bad words, profanity filter, text moderation, content moderation, bad words filter, russian swear words, russian censor, text censor, russian language, profanity detection, text sanitization, russian text processing, russian profanity, swear words detection, russian bad words library, russian text filter, russian text censor, russian language tools, russian text moderation, russian swear words filter, russian bad words npm, russian bad words typescript

readme

Russian-Bad-Words

License

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.addWordsToPass(word: string): void

Добавляет слово, которое будет пропущено при проверке.

  • word: Слово, которое не будет считаться нецензурны

RuCensor.clearBadWordPattern(): void Очищает список паттернов для строгой проверки нецензурных слов и слов добавленных вами.

RuCensor.clearPassPatterns(): void Очищает список паттернов для слов, которые нужно пропустить.

RuCensor.getPretextPatterns(): string Возвращает шаблон для приставок, используемых в нецензурных словах.

  • Возвращает: Шаблон регулярного выражения, полезно для добавления новых слов

Идея алгоритма взята у https://github.com/rin-nas/php-censure.