Метод isEmpty в библиотеке validator.js используется для
определения того, считается ли переданное значение «пустым» с точки
зрения логики валидации строковых данных. Основная задача метода —
унифицировать поведение при обработке различных входных значений,
которые могут приходить из форм, API-запросов или пользовательского
ввода.
isEmpty(input, options)
input — проверяемое значение, обычно строкаoptions — необязательный объект конфигурацииМетод трактует как пустые следующие значения:
""nullundefinedПример базового использования:
validator.isEmpty("");
// true
validator.isEmpty("hello");
// false
validator.isEmpty(null);
// true
validator.isEmpty(undefined);
// true
Такое поведение позволяет унифицировать проверку данных без
необходимости вручную обрабатывать null и
undefined.
Ключевой аспект метода — обработка пробельных символов. По умолчанию строка, содержащая пробелы, не всегда считается пустой, поскольку пробел — это символ.
Для управления этим поведением используется опция
ignore_whitespace.
validator.isEmpty(" ", { ignore_whitespace: true });
// true
validator.isEmpty(" ", { ignore_whitespace: false });
// false
При ignore_whitespace: true строка предварительно
очищается от пробелов, и только затем проверяется на пустоту. Это
особенно важно при обработке пользовательского ввода, где случайные
пробелы не должны влиять на логику валидации.
Метод не выполняет глубокую проверку структур данных. Он не предназначен для работы с объектами или массивами как с коллекциями значений. Если передать массив или объект, поведение зависит от приведения типа к строке:
validator.isEmpty([]);
// true (приводится к "")
validator.isEmpty({});
// false (приводится к "[object Object]")
Такое поведение может считаться побочным эффектом, поэтому в прикладной разработке рекомендуется подавать на вход только строки.
Метод isEmpty применяется в ситуациях:
isLength
и других проверокПример комбинированной логики:
if (!validator.isEmpty(username)) {
// выполняется дальнейшая проверка
}
Метод isLength предназначен для проверки длины строки с
учётом заданных ограничений. Он является одним из базовых инструментов
ограничения пользовательского ввода, особенно в формах регистрации,
авторизации и системах ввода текстовых данных.
isLength(input, options)
input — строка, длина которой проверяетсяoptions — объект с параметрами min и
maxМетод поддерживает два основных ограничения:
min — минимальная допустимая длинаmax — максимальная допустимая длинаПример использования:
validator.isLength("hello", { min: 3, max: 10 });
// true
validator.isLength("hi", { min: 3, max: 10 });
// false
validator.isLength("this is a very long string", { max: 10 });
// false
Если указан только один из параметров, второй считается неограниченным.
validator.isLength("hello", { min: 3 });
// true
validator.isLength("hello", { max: 3 });
// false
Метод вычисляет длину строки через стандартное свойство
length. При этом не выполняется дополнительная нормализация
Unicode, что важно учитывать при работе с эмодзи и многобайтовыми
символами.
validator.isLength("abc");
// длина = 3
Однако при использовании сложных символов поведение может отличаться от визуального восприятия:
"?".length // 2 в JavaScript
Следовательно:
validator.isLength("?", { max: 1 });
// может вернуть false
Метод ожидает строковый ввод. При передаче других типов происходит приведение:
validator.isLength(12345, { min: 1, max: 5 });
// true (преобразуется в "12345")
Это поведение может быть источником ошибок, если типизация данных не контролируется на уровне приложения.
Частая ошибка — использование isLength без
предварительной проверки на пустое значение:
validator.isLength("", { min: 5 });
// false
Логически это корректно, но в некоторых сценариях требуется различать «пусто» и «не соответствует длине». Поэтому часто используется связка:
if (!validator.isEmpty(value) && validator.isLength(value, { min: 5 })) {
// валидно
}
Передача некорректных значений min и max
может приводить к непредсказуемым результатам:
validator.isLength("test", { min: 10, max: 5 });
// логически некорректный диапазон
В таких случаях библиотека не всегда выбрасывает ошибку, но проверка становится бессмысленной.
Метод широко используется в следующих контекстах:
Пример проверки пароля:
validator.isLength(password, { min: 8, max: 64 });
Пример проверки имени:
validator.isLength(username, { min: 3, max: 20 });
Совместное использование isEmpty и isLength
формирует базовый слой проверки текстовых данных. Эти методы решают
разные задачи и дополняют друг друга:
isEmpty определяет наличие значенияisLength проверяет его структурную корректностьТиповой порядок обработки данных:
Пример логики:
if (
!validator.isEmpty(email) &&
validator.isLength(email, { min: 5, max: 254 })
) {
// дальнейшая обработка
}
Такой подход снижает вероятность ошибок, связанных с некорректными входными данными, и обеспечивает предсказуемое поведение валидации на уровне строковой модели данных.