Библиотека Validator.js построена на принципе чистых функций без побочных эффектов. Это означает, что каждая функция принимает входные данные и возвращает результат проверки или преобразования, не изменяя исходное значение.
Вся система возвращаемых значений делится на две ключевые категории:
booleanstring или преобразованное значениеОшибки в привычном смысле (исключения) не используются: вместо этого результатом неудачной проверки всегда является предсказуемое значение.
Большинство функций библиотеки относятся к классу проверок и возвращают строгое логическое значение:
true — значение соответствует условиямfalse — значение не проходит проверкуisEmail(value) → проверка корректности emailisURL(value) → проверка URLisInt(value) → проверка целого числаisLength(value, options) → проверка длины строкиisAlphanumeric(value) → проверка буквенно-цифрового
составаfalse, а не ошибкаПример логики:
isEmail("test@example.com") → true
isEmail("not-email") → false
Санитайзеры выполняют преобразование строки и возвращают изменённое значение, а не логический результат.
trim(value) → удаление пробелов по краямescape(value) → экранирование HTML-символовunescape(value) → обратное преобразованиеstripLow(value) → удаление непечатаемых символовtrim(" hello ") → "hello"
escape("<b>") → "<b>"
Санитайзеры не возвращают boolean, так как их задача —
трансформация данных, а не проверка.
Отдельную категорию составляют функции нормализации, которые могут возвращать:
string — нормализованное значениеfalse — если входные данные некорректны или
нормализация невозможна (в некоторых функциях)Функция normalizeEmail(value, options) приводит email к
каноническому виду:
Возвращаемое значение:
false — если входное значение не является корректным
emailValidator.js не использует исключения для обработки отсутствующих данных. Вместо этого применяется предсказуемая логика:
Для большинства валидаторов:
null → falseundefined → false"" (пустая строка) → false""Одной из ключевых особенностей является отсутствие throw
в стандартных сценариях.
Это означает:
Такой подход особенно важен для серверной валидации форм и API-запросов, где стабильность важнее подробных исключений.
В TypeScript-окружениях библиотека описывается следующим образом:
booleanstringstring | falseЭто позволяет статически проверять корректность использования:
isEmail() в
строковую переменнуюНесмотря на простую модель, существуют нюансы:
true/false, строка)Каждая функция:
Если в функцию передаётся значение неожиданного типа:
falsenull/undefined → безопасно обрабатываются
как невалидные данныеБиблиотека ориентирована на устойчивость к некорректным входным данным без выброса исключений.
Некоторые функции могут возвращать разные типы в зависимости от результата:
stringfalseТакой подход используется там, где невозможно однозначно вернуть корректное преобразованное значение.
Внутренняя логика работы с результатами обычно строится так:
true → данные корректны, можно продолжать
обработкуfalse → данные отклоняютсяstring → данные преобразованы и готовы к дальнейшему
использованиюЭта модель позволяет выстраивать цепочки обработки данных на уровне приложения, а не внутри библиотеки.