Команда для проверок

Библиотека validator.js представляет собой набор функций для валидации и санитизации строковых данных в JavaScript. Она используется как в браузере, так и в Node.js-среде и ориентирована на проверку входных значений без привязки к конкретным фреймворкам.

Основной принцип работы заключается в том, что каждая проверка реализована как отдельная функция, принимающая строку и возвращающая булево значение или преобразованный результат. Такой подход делает библиотеку предсказуемой, модульной и удобной для композиции проверок.


В контексте Validator.js под «командой для проверок» понимается вызов конкретных методов валидации, объединённых в единый набор инструментов для обработки входных данных. Эти методы делятся на несколько категорий: проверки формата, длины, числовых значений, логических условий и санитарной обработки строк.

Проверка строковых значений

Строковые проверки составляют основу библиотеки. Они применяются для анализа корректности пользовательского ввода, например email, URL или текста.

import validator from 'validator';

validator.isEmail('test@mail.com'); // true
validator.isEmail('invalid-email'); // false

Функция isEmail проверяет соответствие строки стандартному формату электронной почты. Аналогично работают другие методы:

  • isURL — проверка корректности URL-адреса
  • isAlpha — содержит только буквы
  • isAlphanumeric — буквы и цифры
  • isNumeric — числовое значение в строковом виде
validator.isURL('https://example.com'); // true
validator.isAlpha('Hello'); // true
validator.isAlpha('Hello123'); // false

Проверка длины и диапазонов

Один из ключевых блоков команд связан с ограничением длины строк и числовых значений.

validator.isLength('Hello', { min: 3, max: 10 }); // true
validator.isLength('Hi', { min: 3 }); // false

Метод isLength позволяет задавать минимальные и максимальные границы. Это особенно полезно при проверке паролей, логинов и текстовых полей.

Для чисел используются специализированные проверки:

validator.isInt('42'); // true
validator.isInt('3.14'); // false

Также доступна проверка диапазона:

validator.isInt('10', { min: 5, max: 20 }); // true

Логические проверки и состояния строки

Команды этого типа определяют состояние строки: пустая ли она, состоит ли только из пробелов, или содержит допустимые символы.

validator.isEmpty(''); // true
validator.isEmpty('   '); // false (по умолчанию)

Важно учитывать, что поведение может изменяться через параметры:

validator.isEmpty('   ', { ignore_whitespace: true }); // true

Также используется проверка:

validator.isWhitelisted('abc', 'abcde'); // true
validator.isWhitelisted('xyz', 'abcde'); // false

Проверка числовых форматов

Библиотека поддерживает расширенные проверки чисел, включая десятичные и валютные форматы.

validator.isDecimal('10.5'); // true
validator.isDecimal('10,5'); // false

Дополнительно:

validator.isFloat('10.5'); // true
validator.isFloat('abc'); // false

Эти методы полезны при обработке финансовых данных и пользовательских вводов с плавающей точкой.


Проверка специальных форматов

Validator.js включает набор команд для проверки распространённых форматов данных:

Телефоны

validator.isMobilePhone('+77011234567', 'kk-KZ'); // true

Даты

validator.isDate('2026-05-11'); // true
validator.isDate('11/05/2026'); // зависит от формата

UUID

validator.isUUID('550e8400-e29b-41d4-a716-446655440000'); // true

Санитизация данных

Отдельный блок команд отвечает за очистку строк от потенциально опасных или нежелательных символов.

validator.escape('<script>'); // &lt;script&gt;
validator.unescape('&lt;script&gt;'); // <script>

Санитизация применяется для предотвращения XSS-уязвимостей и нормализации входных данных.


Комбинирование проверок

Практическая модель использования Validator.js предполагает последовательное применение нескольких команд для одного значения.

const password = 'Pass1234';

const isValid =
  validator.isLength(password, { min: 8 }) &&
  validator.isAlphanumeric(password);

console.log(isValid); // true или false

Такой подход позволяет формировать сложные правила валидации без создания дополнительных абстракций.


Инверсия и отрицательные проверки

Для расширения логики используются отрицательные условия:

!validator.isEmpty('text'); // true

Комбинация отрицаний позволяет строить гибкие правила обработки данных, особенно при работе с формами и API-запросами.


Контекст применения команд

Команды Validator.js применяются в нескольких типичных сценариях:

  • проверка данных формы перед отправкой на сервер
  • валидация входящих JSON-объектов в API
  • фильтрация пользовательского ввода
  • подготовка данных перед записью в базу

Пример серверной проверки:

function validateUser(data) {
  return (
    validator.isEmail(data.email) &&
    validator.isLength(data.password, { min: 8 }) &&
    validator.isAlphanumeric(data.username)
  );
}

Особенности поведения методов

Некоторые команды требуют строгого соблюдения формата входных данных. Например, числовые проверки всегда ожидают строку, даже если значение приходит как число:

validator.isInt(42); // может привести к неожиданному результату
validator.isInt('42'); // корректно

Также важно учитывать локализацию в методах, связанных с телефонами и датами, поскольку разные регионы используют разные форматы.


Расширяемость проверок

Хотя библиотека предоставляет широкий набор встроенных функций, логика легко расширяется через пользовательские проверки:

function isStrongPassword(value) {
  return (
    validator.isLength(value, { min: 10 }) &&
    /[A-Z]/.test(value) &&
    /[0-9]/.test(value)
  );
}

Такой подход позволяет комбинировать Validator.js с нативными средствами JavaScript для создания сложных правил валидации.