umbot
Version:
Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф
94 lines (93 loc) • 3.18 kB
TypeScript
/**
* Модуль утилит - набор вспомогательных инструментов для разработки
*
* Модуль содержит:
* - Утилиты для работы с текстом
* - Стандартные утилиты для работы с данными
* - Инструменты для конфигурации
*
* ### Text
* Класс для работы с текстом, предоставляющий статические методы для:
* - Обрезки текста
* - Поиска вхождений
* - Проверки схожести текстов
* - Работы с окончаниями слов
*
* #### Обрезка текста
* ```ts
* import { Text } from './standard/Text';
*
* const text = 'testing long long text';
*
* // Обрезка с троеточием
* Text.resize(text, 7); // -> 'test...'
*
* // Обрезка без троеточия
* Text.resize(text, 7, false); // -> 'testing'
* ```
*
* #### Поиск вхождений
* Метод для поиска подстроки или массива подстрок в тексте
* ```ts
* import { Text } from './standard/Text';
*
* const text = 'testing long long text';
*
* // Поиск одной подстроки
* Text.isSayText('test', text); // -> true
*
* // Поиск одной из подстрок
* Text.isSayText(['and', 'test'], text); // -> true
*
* // Поиск по регулярному выражению
* // При передаче строки в JavaScript нужно экранировать обратный слеш:
* // '\b' в строке = один символ (backspace), '\\b' = два символа (\ + b)
* Text.isSayText(['and', '\\btest\\b'], text, true); // -> true
* ```
*
* #### Проверка схожести текстов
* Метод для определения степени схожести двух текстов
* ```ts
* import { Text } from './standard/Text';
*
* // Тексты совпадают на 100%
* Text.textSimilarity('test', 'test', 90);
* // -> {
* // percent: 100,
* // index: 0,
* // status: true,
* // text: 'test'
* // }
*
* // Тексты не совпадают
* Text.textSimilarity('test', 'demo', 90);
* // -> {
* // index: null,
* // status: false,
* // text: null
* // }
* ```
*
* #### Работа с окончаниями слов
* Метод для выбора правильного окончания слова в зависимости от числа
* ```ts
* import { Text } from './standard/Text';
*
* const titles = [
* 'Яблоко', // 1
* 'Яблока', // 2-4
* 'Яблок' // 5-20
* ];
*
* Text.getEnding(1, titles); // -> 'Яблоко'
* Text.getEnding(2, titles); // -> 'Яблока'
* Text.getEnding(10, titles); // -> 'Яблок'
*
* // Принудительный выбор формы
* Text.getEnding(10, titles, 0); // -> 'Яблоко'
* ```
*/
export * from './standard/util';
export * from './standard/Text';
export * from './standard/RegExp';
export * from './isPromise';