Библиотека 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'); // зависит от формата
validator.isUUID('550e8400-e29b-41d4-a716-446655440000'); // true
Отдельный блок команд отвечает за очистку строк от потенциально опасных или нежелательных символов.
validator.escape('<script>'); // <script>
validator.unescape('<script>'); // <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 применяются в нескольких типичных сценариях:
Пример серверной проверки:
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 для создания сложных правил валидации.