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.