Skip to content

IvanMalkS/bad-words-js

Repository files navigation

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

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

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

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

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

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

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

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors