StaticclearCacheОчищает кэш регулярных выражений (только кэш строковых паттернов; WeakMap для RegExp-объектов очищать не нужно — записи удаляются сборщиком мусора). Стоит вызывать только в крайних случаях
StaticgetEndingВозвращает правильное окончание слова в зависимости от числа
Число для определения окончания
Варианты окончаний ['один', 'два-четыре', 'пять-десять']
Optionalindex: number | null = nullПринудительный индекс варианта окончания
Выбранное окончание или null, если не найдено
StaticgetMatchRegExpВозвращает скомпилированное регулярное выражение для слота команды.
Использует те же кэши, что и isSayText (WeakMap для RegExp-объектов,
кэш с вытеснением наименее используемых паттернов для строковых шаблонов):
повторные вызовы не компилируют регулярку заново. Предназначено для извлечения
групп совпадения (exec) после того, как команда уже сработала — например,
для заполнения controller.match.
Слот команды: RegExp или строка-паттерн
OptionaluseDirectRegExp: boolean = falseНе нормализовать и не кэшировать RegExp
OptionalcustomReg: RegExpConstructor = undefinedКастомный движок RegExp (например, re2)
Скомпилированное выражение или null, если слот не строка и не RegExp
StaticgetTextВозвращает случайную строку из массива или исходную строку
Optionalstr: TPatternСтрока или массив строк
Выбранная строка
StaticisSayFalseStaticisSayTextПроверяет наличие совпадений в тексте
Искомый текст или массив текстов
Исходный текст для поиска
OptionalisPattern: boolean = falseИспользовать ли регулярные выражения
OptionaluseDirectRegExp: boolean = falseИспользовать исходные RegExp напрямую без нормализации и кэширования. Стоит использовать только в крайних случаях.
OptionalcustomReg: RegExpConstructor = undefinedПроизвольная реализация для обработки регулярных выражений
true, если найдено совпадение
StaticisSayTrueОпределяет наличие в тексте согласия пользователя
Проверяемый текст
true, если найдено подтверждение
StaticisUrlStaticresizeОбрезает текст до указанной длины
Обрезка выполняется по границе символа: суррогатные пары (эмодзи) не разрываются, поэтому результат остаётся валидной строкой для отправки платформе.
Исходный текст
Optionalsize: number = 950Максимальная длина результата
OptionalisEllipsis: boolean = trueДобавлять ли многоточие в конце
Обрезанный текст
StatictextReplaceЗаменяет ключ в тексте на значение
Ключ для замены
Значение для замены (из массива выбирается случайный вариант)
Исходный текст
Текст с заменённым ключом
StatictextSimilarityПроверяет схожесть текстов и возвращает результат сравнения
Оригинальный текст для сравнения
Текст или массив текстов для сравнения
Optionalthreshold: number = 80Минимальный процент схожести для положительного результата
Результат сравнения текстов
// Сравнение с одним текстом
Text.textSimilarity('привет', 'привт', 80);
// -> {
// status: true,
// index: 0,
// percent: ~91,
// text: 'привт'
// }
// Сравнение с массивом текстов
Text.textSimilarity('привет', ['привт', 'здравствуйте'], 80);
// -> {
// status: true,
// index: 0,
// percent: ~91,
// text: 'привт'
// }
Класс для работы с текстом и текстовыми операциями
Remarks
Класс предоставляет статические методы для:
Example