clean_validator 0.1.0
clean_validator: ^0.1.0 copied to clipboard
Easy validators.
A small collection of composable validator helpers for Dart and Flutter.
Clean Validator provides lightweight validator functions you can use in
TextFormField validators or call directly to validate strings. Each validator
returns a String? Function(String?) that evaluates the input and returns an
error message on failure or null when valid.
Features
- Small, focused validator functions (email, url, length, regex, etc.)
- Compose multiple validators with the
.validate()extension - Per-validator and composed fail message overrides
Installation #
From the command line:
flutter pub add clean_validator
# or for pure Dart
dart pub add clean_validator
Quick Usage #
Import the package:
import 'package:clean_validator/clean_validator.dart';
Single validator example:
final emailValidator = validateEmail();
final error = emailValidator('not-an-email'); // 'Please enter a valid email address'
Compose multiple validators using the provided extension:
final validator = [
validateRequired(),
validateEmail(),
].validate();
final error = validator(''); // 'This field is required'
final ok = validator('user@example.com'); // null
Use directly in a Flutter TextFormField:
TextFormField(
validator: [validateRequired(), validateEmail()].validate(),
)
Override the fail message on an individual validator:
validateRequired(failMessage: 'Please enter a value');
Or override the composed failure message (first failing message is returned):
final composed = [validateRequired(), validateEmail()].validate(failMessage: 'Invalid input');
Available validators (names) #
validateRequired,isRequiredvalidateNotNull,isNotNullvalidateEmail,isEmailvalidateUrl,isUrlvalidateRegex,isValidRegexvalidateLength,isLengthvalidateMinWordsCount,isMinWordsCountvalidateMaxWordsCount,isMaxWordsCountvalidatePassword,isPassword,PasswordRule,ContainNumeric,ContainAlphabetic,ContainSpecialCharactersvalidateJson,isJson,isJsonObject,isJsonArrayvalidateIban,isIbanvalidateIP,isIP,isIPv4,isIPv6validateCreditCardNumber,isCreditCardNumber,isVisa,isMastercard,isAmex,isDiscover,isJCB,isDinersvalidateCreditCardCvc,isCreditCardCvcvalidateCreditCardExpiry,isCreditCardExpiryvalidateIsbn,isIsbnvalidateBic,isBicvalidateHexColor,isHexColorvalidateHexadecimal,isHexadecimalvalidateContains,isContainsvalidateStartsWith,isStartsWithvalidateEndsWith,isEndsWithvalidateBase,isBase,validateBase64,validateBase32,validateBase58validateUUID,isUUID,isUUIDv1,isUUIDv2,isUUIDv3,isUUIDv4,isUUIDv5validateIsPresent,isPresentvalidateLatitude,isLatitude,validateLongitude,isLongitude,validateCoordinatePair,validateCoordinateString,isCoordinate,isCoordinateString
For the full code and exact signatures, see the lib/src/validators folder or the example in the example/ directory.
Example #
See example/clean_validator_example.dart for a runnable example.
Contributing #
Contributions, issues and feature requests are welcome. Feel free to open an issue or a pull request.
License #
This project is licensed under the terms in the LICENSE file.