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.
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
– Booleantrue
validation (e.g., for checkboxes).RequiredListValidator
– Validates non-empty lists.RequiredDateValidator
– Ensures a date is provided.
MinValueValidator<T extends num>
– Checks minimum value (int/double).MaxValueValidator<T extends num>
– Checks maximum value (int/double).
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.
OtpValidator
– Validates OTP codes (custom length).PinNumberValidator
– 4 or 6-digit PIN validation.ConfirmPasswordValidator
– Compares two password fields.
- File type validation – Checks image formats (e.g., PNG, JPEG) via extensions.
Add to pubspec.yaml
:
dependencies:
i_validator: <latest_version>
Run:
flutter pub get
final error = EmailValidator().validate("invalid-email");
print(error); // "Enter a valid email"
final validator = PasswordValidator(
minLength: 8,
strength: PasswordStrength.strong, // Requires uppercase, number, symbol
);
print(validator.validate("weak")); // "Password must be at least 8 characters"
final error = OtpValidator(length: 6).validate("123");
print(error); // "OTP must be 6 digits"
final error = RequiredFieldValidator<String>().validate("");
print(error); // "This field is required"
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
final error = RequiredListValidator().validate([]);
print(error); // "List cannot be empty"
final error = RequiredDateValidator().validate(null);
print(error); // "A date is required"
MIT – See LICENSE for details.