Параметры каждого метода

Библиотека Validator.js построена вокруг единого подхода к параметрам: почти все методы принимают строку в качестве первого аргумента и дополнительный набор опций или локаль во втором аргументе. Такой дизайн обеспечивает предсказуемость и консистентность API.

Типовая сигнатура большинства функций:

  • validator.method(input: string, options?: object | array | string)

Ключевые особенности параметров:

  • input — всегда строка (даже если проверяется число или дата).
  • options — объект конфигурации или строка локали.
  • строгая типизация поведения отсутствует, поэтому важна корректная подготовка входных данных.

Проверка строк и базовые параметры

isLength

Проверка длины строки с учётом диапазона.

Параметры:

  • min: number — минимальная длина
  • max: number — максимальная длина

Пример сигнатуры:

  • isLength(str, { min, max })

Особенности:

  • учитывает символы Unicode
  • длина считается по символам, а не байтам

isByteLength

Проверка длины строки в байтах.

Параметры:

  • min: number
  • max: number

Используется при:

  • работе с сетевыми протоколами
  • ограничениях баз данных

Особенность:

  • UTF-8 символы могут занимать более 1 байта

Числовые проверки и параметры

isInt

Проверка целого числа.

Параметры (options):

  • min?: number — минимальное значение
  • max?: number — максимальное значение
  • allow_leading_zeroes?: boolean — разрешение ведущих нулей
  • gt?: number — строго больше
  • lt?: number — строго меньше

Пример:

  • { min: 10, max: 100 }

isFloat

Проверка числа с плавающей точкой.

Параметры:

  • min?: number
  • max?: number
  • locale?: string — локаль (разделитель дробной части)
  • gt?: number
  • lt?: number

Особенность:

  • учитывает локальные форматы чисел (например, запятая вместо точки)

isNumeric

Проверка, является ли строка числом.

Параметры:

  • no_symbols?: boolean — запрещает знаки +, -, .
  • locale?: string

Логические и булевые значения

isBoolean

Проверка булевого значения в строковом виде.

Параметры:

  • strict?: boolean — строгий режим ("true"/"false" без альтернатив)
  • loose?: boolean — допускает 1, 0, "yes", "no"

Особенность:

  • поведение сильно зависит от режима строгости

Проверка дат

isDate

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

Параметры:

  • отсутствуют (только строка)

Особенности:

  • использует встроенный парсер JavaScript Date
  • зависит от формата строки

isISO8601

Проверка ISO 8601 формата.

Параметры:

  • strict?: boolean — строгая проверка полного соответствия стандарту

Работа с JSON

isJSON

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

Параметры:

  • отсутствуют

Особенность:

  • выполняется через JSON.parse, поэтому валидность зависит от строгого синтаксиса

Строковые форматы и шаблоны

isEmail

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

Параметры:

  • allow_display_name?: boolean
  • require_display_name?: boolean
  • allow_utf8_local_part?: boolean
  • require_tld?: boolean
  • ignore_max_length?: boolean
  • domain_specific_validation?: boolean

Особенность:

  • поддерживает расширенные RFC-форматы

isURL

Проверка URL.

Параметры:

  • protocols?: string[] — допустимые протоколы (http, https, ftp)
  • require_protocol?: boolean
  • require_valid_protocol?: boolean
  • allow_underscores?: boolean
  • host_whitelist?: string[]
  • host_blacklist?: string[]
  • allow_trailing_dot?: boolean
  • allow_protocol_relative_urls?: boolean

Особенность:

  • гибкая фильтрация доменов и протоколов

isFQDN

Проверка полного доменного имени.

Параметры:

  • require_tld?: boolean
  • allow_underscores?: boolean
  • allow_trailing_dot?: boolean

IP-адреса и сетевые данные

isIP

Проверка IP-адреса.

Параметры:

  • version?: 4 | 6 — версия IP

isMACAddress

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

Параметры:

  • no_separators?: boolean
  • eui?: '48' | '64' — формат адреса

Телефоны и локальные форматы

isMobilePhone

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

Параметры:

  • locale: string | string[] — страны/регионы
  • strictMode?: boolean
  • allowMobileExtensions?: boolean

Особенность:

  • поддерживает множество локалей (например, RU, KZ, US)

isPostalCode

Проверка почтового индекса.

Параметры:

  • locale: string

Особенность:

  • формат зависит от страны

Денежные и финансовые форматы

isCurrency

Проверка валютного формата.

Параметры:

  • symbol?: string — символ валюты
  • require_symbol?: boolean
  • allow_space_after_symbol?: boolean
  • symbol_after_digits?: boolean
  • thousands_separator?: string
  • decimal_separator?: string
  • allow_negatives?: boolean
  • parens_for_negatives?: boolean

Особенность:

  • поддержка различных финансовых форматов

Проверка UUID

isUUID

Проверка UUID.

Параметры:

  • version?: 3 | 4 | 5 | 'all'

Санитизация строк

trim

Удаление пробелов.

Параметры:

  • chars?: string — набор символов для удаления
  • locale?: string

escape

Экранирование HTML-символов.

Параметры:

  • отсутствуют

unescape

Обратное преобразование HTML-символов.

Параметры:

  • отсутствуют

normalizeEmail

Нормализация email-адреса.

Параметры:

  • gmail_lowercase?: boolean
  • gmail_remove_dots?: boolean
  • gmail_remove_subaddress?: boolean
  • outlookdotcom_lowercase?: boolean
  • all_lowercase?: boolean

Особенность:

  • поведение зависит от почтового провайдера

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

isAlpha

Проверка только букв.

Параметры:

  • locale?: string
  • ignore?: string

isAlphanumeric

Проверка букв и цифр.

Параметры:

  • locale?: string
  • ignore?: string

isAscii

Проверка ASCII-символов.

Параметры:

  • отсутствуют

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

isHash

Проверка хеш-строки.

Параметры:

  • algorithm?: string — например md5, sha1, sha256

isJWT

Проверка JSON Web Token.

Параметры:

  • отсутствуют

Общие особенности работы параметров

  • все параметры опциональны, если не указано иное
  • строки всегда приводятся к строковому типу перед проверкой
  • локали расширяют поведение без изменения базовой логики
  • объектные параметры используются для гибкой настройки без перегрузки функций
  • большинство методов не выбрасывают исключения, а возвращают true/false

Поведенческие паттерны параметров

Приоритет опций

При конфликте параметров приоритет обычно имеет:

  1. строгие ограничения (strict, require_*)
  2. диапазоны (min, max)
  3. вспомогательные флаги (allow_*)

Локализация

Параметр locale:

  • изменяет правила форматирования
  • влияет на допустимые символы
  • используется в числах, телефонах, почтовых индексах

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

Многие методы принимают массивы:

  • списки протоколов
  • списки доменов
  • наборы разрешённых символов

Это позволяет строить сложные правила без внешней логики.