Валидатор
Реализуйте библиотеку для валидации строк.
Основные возможности проекта
- Библиотека для валидации строк с большим набором правил.
- Встроенные правила для email, доменов, номеров телефонов и т.д.
- Возможность добавления кастомных правил.
- Кастомизация сообщений об ошибках.
- Публикация на GitHub с документацией.
Функциональность библиотеки
Библиотека должна предоставлять следующие возможности:
- Проверка строки на соответствие правилам.
- Возврат массива ошибок или true/false.
- Поддержка цепочки правил (валидация по нескольким правилам одновременно).
- Кастомизация сообщений об ошибках.
Встроенные правила
Библиотека должна содержать следующие правила валидации:
- required - строка не должна быть пустой.
- min - минимальная длина строки.
- max - максимальная длина строки.
- email - проверка на корректный email.
- emailDomain - проверка домена email (например, только gmail.com).
- emailMX - проверка существования MX-записи домена email.
- url - проверка на корректный URL (с http:// или https://).
- domain - проверка на корректное доменное имя (например, example.com).
- phone - проверка на корректный номер телефона (поддержка разных стран).
- phoneRU - проверка на корректный российский номер телефона.
- alpha - только буквы (латиница).
- alphaRU - только буквы (кириллица и латиница).
- numeric - только цифры.
- alphanumeric - только буквы и цифры.
- integer - целое число.
- float - число с плавающей точкой.
- date - проверка на корректную дату в формате YYYY-MM-DD.
- dateRU - проверка на корректную дату в формате ДД.ММ.ГГГГ.
- time - проверка на корректное время в формате HH:MM.
- ip - проверка на корректный IP-адрес (IPv4).
- ipv6 - проверка на корректный IP-адрес (IPv6).
- password - проверка сложности пароля (минимум 8 символов, буквы, цифры, спецсимволы).
- regex - проверка по регулярному выражению.
Кастомные правила
Пользователь должен иметь возможность добавлять свои правила:
- Передать функцию, которая принимает строку и возвращает true/false.
- Передать регулярное выражение для проверки.
Использование библиотеки
Пример использования библиотеки:
- Подключить JS-файл с библиотекой.
- Создать экземпляр валидатора.
- Задать правила для валидации.
- Вызвать метод validate() для проверки строки.
Сообщения об ошибках
Библиотека должна позволять:
- Использовать стандартные сообщения об ошибках.
- Переопределять сообщения для каждого правила.
- Переопределять сообщения для конкретного поля.
Публикация на GitHub
Библиотека должна быть выложена на GitHub с:
- README.md с описанием и инструкцией по установке.
- Демо-страницей с примерами использования.
- Исходным кодом библиотеки.
Тестирование
Библиотека должна быть протестирована на:
- Корректной работе всех встроенных правил.
- Работе кастомных правил.
- Обработке ошибок при неправильных параметрах.
Дополнительные возможности
- Валидация объектов (несколько полей одновременно).
- Локализация сообщений об ошибках (русский, английский).