flutter_validator_pro 0.1.3 copy "flutter_validator_pro: ^0.1.3" to clipboard
flutter_validator_pro: ^0.1.3 copied to clipboard

A Flutter plugin for form validation including email, password, phone number, and custom multi-validator support.

flutter_validator_pro #

flutter_validator_pro is a lightweight Flutter package for chainable form validation.

It helps you keep validation logic outside widgets while still returning the standard String? result used by TextFormField.validator.

Features #

  • Chain multiple validation rules in a readable way
  • Supports email, password, confirm password, contact number, name, number, date, time, and URL validation
  • Returns the first error message found
  • Returns null when validation passes
  • Includes multiValidator(...) support for combining multiple field validations

Installation #

Add the package to your pubspec.yaml:

dependencies:
  flutter_validator_pro: ^0.1.3

Then run:

flutter pub get

Import #

import 'package:flutter_validator_pro/flutter_validator_pro.dart';

Quick Start #

final error = FlutterValidatorPro()
    .emailValidator(value: 'john@example.com')
    .isRequired()
    .isValidEmail()
    .noSpaces()
    .validate();

With a TextFormField:

TextFormField(
  validator: (value) => FlutterValidatorPro()
      .emailValidator(value: value)
      .isRequired()
      .isValidEmail()
      .singleAtSymbol()
      .noConsecutiveDots()
      .validate(),
)

Available Validators #

The main entry point is:

final validator = FlutterValidatorPro();

From there you can start a validation chain using:

  • emailValidator(value: ...)
  • passwordValidator(value: ...)
  • confirmPasswordValidator(password: ..., confirmPassword: ...)
  • contactValidator(value: ...)
  • nameValidator(value: ...)
  • numberValidator(value: ...)
  • dateValidationSupport(value: ...)
  • timeValidationSupport(value: ...)
  • urlValidationSupport(value: ...)
  • multiValidator(validations: [...])

Examples #

Email validation #

final error = FlutterValidatorPro()
    .emailValidator(value: 'user@gmail.com')
    .isRequired()
    .isValidEmail()
    .noSpaces()
    .singleAtSymbol()
    .noConsecutiveDots()
    .validate();

Password validation #

final error = FlutterValidatorPro()
    .passwordValidator(value: 'MyPass@123')
    .isRequired()
    .minLength(8)
    .hasUppercase()
    .hasLowercase()
    .hasNumber()
    .hasSpecialCharacter()
    .noSpaces()
    .validate();

Confirm password validation #

final error = FlutterValidatorPro()
    .confirmPasswordValidator(
      password: 'MyPass@123',
      confirmPassword: 'MyPass@123',
    )
    .isRequired()
    .matchesPassword()
    .validate();

Contact number validation #

final error = FlutterValidatorPro()
    .contactValidator(value: '+919876543210')
    .isRequired()
    .isNumeric()
    .isIndianNumber()
    .validate();

Name validation #

final error = FlutterValidatorPro()
    .nameValidator(value: 'John Doe')
    .isRequired()
    .minLength(3)
    .noNumbers()
    .isFullName()
    .validate();

Number validation #

final error = FlutterValidatorPro()
    .numberValidator(value: '25')
    .isRequired()
    .digitsOnly()
    .minValue(18)
    .maxValue(60)
    .validate();

Date validation #

final error = FlutterValidatorPro()
    .dateValidationSupport(value: '2000-05-20')
    .required()
    .minAge(18)
    .validate();

Time validation #

final error = FlutterValidatorPro()
    .timeValidationSupport(value: '14:30')
    .required()
    .timeFormat('HH:mm')
    .timeRange(start: '09:00', end: '18:00')
    .validate();

URL validation #

final error = FlutterValidatorPro()
    .urlValidationSupport(value: 'https://example.com/profile')
    .required()
    .validUrl()
    .httpsOnly()
    .validDomain()
    .validate();

Combine multiple validators #

final emailError = FlutterValidatorPro()
    .emailValidator(value: 'john@example.com')
    .isRequired()
    .isValidEmail()
    .validate();

final passwordError = FlutterValidatorPro()
    .passwordValidator(value: 'pass')
    .minLength(8)
    .validate();

final error = FlutterValidatorPro().multiValidator(
  validations: [emailError, passwordError],
);

How It Works #

Each rule checks the current value and stores the first validation error. If a rule fails, later rules do not replace that message.

validate() returns:

  • null when all applied rules pass
  • A String error message when validation fails

Pub.dev Notes #

  • Use FlutterValidatorPro as the main class name.
  • Import the package with flutter_validator_pro.dart.
  • Custom messages are supported by most validation methods through the message parameter.

Running Tests #

flutter test
2
likes
160
points
42
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin for form validation including email, password, phone number, and custom multi-validator support.

Repository (GitHub)
View/report issues
Contributing

License

Apache-2.0 (license)

Dependencies

flutter, intl

More

Packages that depend on flutter_validator_pro