UNPKG

umbot

Version:

Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф

94 lines (93 loc) 3.18 kB
/** * Модуль утилит - набор вспомогательных инструментов для разработки * * Модуль содержит: * - Утилиты для работы с текстом * - Стандартные утилиты для работы с данными * - Инструменты для конфигурации * * ### 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';