Примеры вызовов

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

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


Общая модель работы функций

Функции библиотеки строятся по единообразному принципу:

  • вход: строка
  • выход: true / false либо модифицированная строка
  • отсутствие побочных эффектов
  • строгая проверка формата без попыток интерпретации данных

Типичная структура:

validator.isEmail('test@example.com');
validator.isURL('https://example.com');

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

Проверка на пустую строку

Функция isEmpty определяет отсутствие содержимого:

validator.isEmpty('');
validator.isEmpty('   ');

Поддерживается опция игнорирования пробелов:

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

Проверка длины строки

Функция isLength используется для ограничения диапазона символов:

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

Варианты использования:

validator.isLength('Hi', { min: 1 }); // минимальная длина
validator.isLength('Validator', { max: 20 }); // максимальная длина

Валидация числовых значений

Проверка на число

validator.isNumeric('12345');
validator.isNumeric('12.45');

Дополнительные настройки:

validator.isNumeric('12,45', { locale: 'fr-FR' });

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

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

Примеры ограничений:

validator.isInt('-5', { min: -10, max: 0 });
validator.isInt('100', { min: 0 });

Проверка email-адресов

Функция isEmail анализирует структуру электронной почты:

validator.isEmail('user@example.com');

Расширенные параметры:

validator.isEmail('user@example.com', {
  allow_utf8_local_part: true,
  require_tld: true
});

Примеры некорректных значений:

validator.isEmail('user@');
validator.isEmail('example.com');
validator.isEmail('user@com');

Проверка URL

Функция isURL используется для проверки корректности веб-адресов:

validator.isURL('https://example.com');

Настройки:

validator.isURL('http://localhost:3000', {
  require_protocol: true,
  allow_localhost: true
});

Допустимые и недопустимые варианты:

validator.isURL('example.com'); // false при строгих настройках
validator.isURL('ftp://example.com'); // зависит от конфигурации

Проверка UUID

UUID используется для идентификаторов:

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

Поддержка версий:

validator.isUUID('550e8400-e29b-41d4-a716-446655440000', 4);

Проверка дат и времени

Проверка даты

validator.isDate('2024-12-01');

Проверка ISO-формата

validator.isISO8601('2024-12-01T10:15:30Z');

Работа с логическими значениями

Проверка булевых строк

validator.isBoolean('true');
validator.isBoolean('false');

Поддержка различных форматов:

validator.isBoolean('1', { loose: true });
validator.isBoolean('0', { loose: true });

Нормализация строк

Очистка email

validator.normalizeEmail('USER@Example.COM');

Результат:

user@example.com

Опции:

validator.normalizeEmail('user@gmail.com', {
  gmail_remove_dots: true
});

Примеры вызовов

Базовые проверки пользовательского ввода

validator.isEmpty(inputName);
validator.isLength(inputName, { min: 2, max: 50 });
validator.isEmail(email);
validator.isURL(website);

Комбинированная валидация формы

const isValidName = validator.isLength(name, { min: 2, max: 30 });
const isValidEmail = validator.isEmail(email);
const isValidAge = validator.isInt(age, { min: 18, max: 120 });

Проверка идентификаторов и структур данных

validator.isUUID(userId);
validator.isNumeric(orderNumber);
validator.isISO8601(createdAt);

Проверка конфигурационных значений

validator.isURL(apiEndpoint, { require_protocol: true });
validator.isBoolean(debugMode, { loose: true });
validator.isInt(timeout, { min: 100, max: 60000 });

Валидация массивов значений через перебор

emails.every(email => validator.isEmail(email));
ids.every(id => validator.isUUID(id));

Сложные условия валидации

const isValidPayload =
  validator.isLength(username, { min: 3, max: 20 }) &&
  validator.isEmail(email) &&
  validator.isStrongPassword(password);

Проверка паролей

Функция isStrongPassword анализирует сложность:

validator.isStrongPassword('Aa123456!');

Параметры:

validator.isStrongPassword('Aa123456!', {
  minLength: 8,
  minLowercase: 1,
  minUppercase: 1,
  minNumbers: 1,
  minSymbols: 1
});

Работа с IP-адресами

validator.isIP('192.168.0.1');
validator.isIP('::1');

Типы:

validator.isIP('192.168.0.1', 4);
validator.isIP('::1', 6);

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

validator.isAlpha('HelloWorld');
validator.isAlpha('Пример', 'ru-RU');

Проверка алфавитно-цифровых значений

validator.isAlphanumeric('abc123');

С локализацией:

validator.isAlphanumeric('abc123', 'en-US');

Проверка JSON-строк

validator.isJSON('{"key": "value"}');

Проверка MIME-типов и медиаформатов

validator.isMimeType('image/png');

Проверка хешей

validator.isHash('d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2', 'md5');

Поддерживаемые алгоритмы:

  • md5
  • sha1
  • sha256
  • sha512

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

validator.equals('test', 'test');

Удаление и экранирование символов

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

Обработка данных с учетом локалей

validator.isFloat('12,34', { locale: 'de-DE' });

Проверка MAC-адресов

validator.isMACAddress('00:1B:44:11:3A:B7');

Проверка кредитных карт

validator.isCreditCard('4111111111111111');

Проверка телефонных номеров

validator.isMobilePhone('202-555-0125', 'en-US');

Проверка UUID и GUID в прикладных сценариях

validator.isUUID(sessionId, 4);
validator.isUUID(transactionId);