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 });
Функция 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');
Функция 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 используется для идентификаторов:
validator.isUUID('550e8400-e29b-41d4-a716-446655440000');
Поддержка версий:
validator.isUUID('550e8400-e29b-41d4-a716-446655440000', 4);
validator.isDate('2024-12-01');
validator.isISO8601('2024-12-01T10:15:30Z');
validator.isBoolean('true');
validator.isBoolean('false');
Поддержка различных форматов:
validator.isBoolean('1', { loose: true });
validator.isBoolean('0', { loose: true });
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
});
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');
validator.isJSON('{"key": "value"}');
validator.isMimeType('image/png');
validator.isHash('d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2', 'md5');
Поддерживаемые алгоритмы:
validator.equals('test', 'test');
validator.escape('<script>');
validator.unescape('<script>');
validator.isFloat('12,34', { locale: 'de-DE' });
validator.isMACAddress('00:1B:44:11:3A:B7');
validator.isCreditCard('4111111111111111');
validator.isMobilePhone('202-555-0125', 'en-US');
validator.isUUID(sessionId, 4);
validator.isUUID(transactionId);