i_validator 1.1.6
i_validator: ^1.1.6 copied to clipboard
i_validator package provides a collection of common validation utilities such as email, password, phone number, OTP, and required fields validation. It also includes custom validation for confirm pass [...]
i_validator #
A Flutter package offering robust validation utilities for forms, inputs, and business logic. Includes predefined validators for strings, numbers, dates, lists, and custom regex patterns with type-safe generic support.
Features #
📜 Core Validators #
IValidator<T>– Generic interface for all validators (supports any input type).RequiredFieldValidator<T>– Ensures non-null/non-empty values for any type.RequiredStringValidator– Non-empty text validation.RequiredTrueValidator– Booleantruevalidation (e.g., for checkboxes).RequiredListValidator– Validates non-empty lists.RequiredDateValidator– Ensures a date is provided.
🔢 Numeric Validators #
MinValueValidator<T extends num>– Checks minimum value (int/double).MaxValueValidator<T extends num>– Checks maximum value (int/double).
📝 Text Validators #
EmailValidator– RFC-compliant email format validation.PasswordValidator– Configurable strength levels (easy,medium,strong).MinLengthValidator– Enforces minimum string length.RegexValidator– Custom regex pattern validation (e.g., URLs, usernames).PhoneNumberValidator– Global phone number format support.
🔐 Security Validators #
OtpValidator– Validates OTP codes (custom length).PinNumberValidator– 4 or 6-digit PIN validation.ConfirmPasswordValidator– Compares two password fields.
📂 File Validation #
- File type validation – Checks image formats (e.g., PNG, JPEG) via extensions.
🚀 Installation #
Add to pubspec.yaml:
dependencies:
i_validator: <latest_version>
Run:
flutter pub get
🛠 Usage #
1. Email Validation #
final error = EmailValidator().validate("invalid-email");
print(error); // "Enter a valid email"
2. Password Validation (Strong) #
final validator = PasswordValidator(
minLength: 8,
strength: PasswordStrength.strong, // Requires uppercase, number, symbol
);
print(validator.validate("weak")); // "Password must be at least 8 characters"
3. OTP Validation (6-digit) #
final error = OtpValidator(length: 6).validate("123");
print(error); // "OTP must be 6 digits"
4. Required Field Validation #
final error = RequiredFieldValidator<String>().validate("");
print(error); // "This field is required"
5. Custom Regex Validation #
final validator = RegexValidator(
pattern: r'^[A-Z][a-z]*$', // Starts with uppercase
errorText: "Must start with a capital letter",
);
print(validator.validate("flutter")); // Error message
6. List Validation #
final error = RequiredListValidator().validate([]);
print(error); // "List cannot be empty"
7. Date Validation #
final error = RequiredDateValidator().validate(null);
print(error); // "A date is required"
📜 License #
MIT – See LICENSE for details.