Search packages, repositories and app categories

GitHub repositorydev-mahmoud-elshenawy/auto_validate

auto_validate

dev-mahmoud-elshenawy/auto_validate open-source repository details.

auto_validate project cover
Stars
9
Forks
3
Last push (UTC)
Jul 9, 2025
Project status
Active

Original README

English project snapshot. Visit GitHub for the latest content.

Auto Validate

The Auto Validate Package is a unique and easy-to-use solution for automatic validation of various data types using regular expressions.

Pub Package Build Status Unit Test creator Buy Me A Coffee

Importance

This package streamlines the validation process, allowing you to easily implement validation without needing to write the code yourself. By using this package, you can save valuable time and ensure that your input data meets the required criteria.

Usage

Here's a simple example of how to use the Auto Validate package:

String Validation Extension [New Feature]

This package provides an extension on String? that offers convenient methods for validating various input formats using the AutoValidate class. It allows for a more readable and fluent validation process in your Dart applications.

Features

  • Validate usernames, passwords, email addresses, phone numbers, credit card numbers, and more.
  • Check for valid formats like ISBN, MAC addresses, hexadecimal codes, and JSON Web Tokens (JWT).
  • Simplify validation checks by using fluent methods directly on String? instances.
  • Improve code readability and maintainability by using the extension methods for validation.
import 'package:auto_validate/auto_validate.dart';

  void validation() {
    var email = 'Dev.M.ElShenawy@Icloud.com';
    var name = 'Mahmud El Shenawy';
    var password = '@MahmoudElShenawy2021';
    var phone = '+201098415860';
  
    // You can validate the input using the AutoValidate class
    AutoValidate.email(email.toString())
            ? print('Email is Valid')
            : print('Email is Invalid');
  
    AutoValidate.userName(name.toString())
            ? print('User Name is Valid')
            : print('User Name is Invalid');
  
    AutoValidate.password(password.toString())
            ? print('Password is Valid')
            : print('Password is Invalid');
  
    AutoValidate.phone(phone.toString())
            ? print('Phone is Valid')
            : print('Phone is Invalid');
  
    // You can also use the extension methods to validate the input
    email.isValidEmail
            ? print('Email is Valid')
            : print('Email is Invalid');
  
    name.isValidUsername
            ? print('User Name is Valid')
            : print('User Name is Invalid');
  
    password.isValidPassword
            ? print('Password is Valid')
            : print('Password is Invalid');
  
    phone.isValidPhone
            ? print('Phone is Valid')
            : print('Phone is Invalid');
  }

A simple usage of Form Validator Example:

import 'package:auto_validate/auto_validate.dart';

  TextFormField(
                controller: emailController,
                decoration: InputDecoration(
                hintText: "Email",
                border: OutlineInputBorder(
                borderSide: BorderSide(),
                  ),
                ),
                validator: FormValidator.email(
                  errorMessage: 'Please Enter Valid Email',
                   ),
  );
More Details
  • Make validation on all next elements with AutoValidate

    • Arabic Input
    • UserName (It Contains Alphanumeric, underscores and hyphens and its long between 3 to 16 characters)
    • Password (It Contains at least 1 lowerCase letter, upperCase letter, number and 8 characters long)
    • Strong Password (It Contains at least 1 lowerCase letter, upperCase letter, number, special character and 8 characters long
    • Email
    • Phone Number
    • International Phone Number
    • Credit Card
    • SNN (Social Security Number)
    • Passport
    • Date (MM/DD/YYYY)
    • Date (YYYY/MM/DD)
    • IPV4 (Internet Protocol Version 4)
    • IPV6 (Internet Protocol Version 6)
    • Alphanumeric
    • Alphanumeric With Spaces
    • Alphabet
    • LowerCase
    • UpperCase
    • Digits
    • Decimals
    • Signed Decimals
    • URL
    • Base64
    • Base58
    • Base32
    • ASCII (American Standard Code for Information Interchange)
    • ByteLength ("Check String's Length (In Bytes) In A Range")
    • JWT (Json Web Token)
    • ISIN (International Securities Identification Number)
    • ISBN (International Standard Book Number - "You Have To Choose One Of Its Versions 10 or 13")
    • MAC Address (Media Access Control - "You Have To Choose With Colons Or Not")
    • BIC (Bank Identifier Code)
    • MD5 Hash (Message-Digest Algorithm)
    • Capitalized
    • Emoji
    • Hexadecimal Color
    • Hexadecimal Number
    • Latitude and Longitude
    • Magnet URI
    • Mongo ID
    • Multibyte Character Sets
    • Null
    • Non-Null
    • SameType
    • Match
    • MinLength
    • MaxLength
  • Make form validation on all next elements with FormValidator

    • Required (Non-Null Required Field - "For Empty TextFormField")
    • combination (Combination From More Than One Form Validator)
    • Arabic Input
    • UserName (It Contains Alphanumeric, underscores and hyphens and its long between 3 to 16 characters)
    • Password (It Contains at least 1 lowerCase letter, upperCase letter, number and 8 characters long)
    • Strong Password (It Contains at least 1 lowerCase letter, upperCase letter, number, special character and 8 characters long
    • Email
    • Phone Number
    • International Phone Number
    • Credit Card
    • SNN (Social Security Number)
    • Passport
    • Date (MM/DD/YYYY)
    • Date (YYYY/MM/DD)
    • IPV4 (Internet Protocol Version 4)
    • IPV6 (Internet Protocol Version 6)
    • Alphanumeric
    • Alphanumeric With Spaces
    • Alphabet
    • LowerCase
    • UpperCase
    • Digits
    • Decimals
    • Signed Decimals
    • URL
    • Base64
    • Base58
    • Base32
    • ASCII (American Standard Code for Information Interchange)
    • JWT (Json Web Token)
    • ISIN (International Securities Identification Number)
    • MAC Address (Media Access Control - "Without Colons")
    • BIC (Bank Identifier Code)
    • MD5 Hash (Message-Digest Algorithm)
    • Capitalized
    • Latitude and Longitude
    • Magnet URI
    • Mongo ID
    • Multibyte Character Sets
    • MinLength
    • MaxLength

Note

  • Auto Validate is used to check any value you want
  • Form Validator is the same previous functionality but with error message that uses in TextFormField validator attribute
  • You can use more than one Form validator like next example:-
import 'package:auto_validate/auto_validate.dart';

  TextFormField(
                controller: emailController,
                decoration: InputDecoration(
                hintText: "Password",
                border: OutlineInputBorder(
                borderSide: BorderSide(),
                  ),
                ),
                validator: FormValidator.combination(
                 validators: [
                 FormValidator.maxLength(maxLength: 15, errorMessage: 'Password Enter Valid Password With Max Length 15'),
                 FormValidator.minLength(minLength: 5, errorMessage: 'Password Enter Valid Password At Least Min Length 5'),
                 FormValidator.passwordStrong(errorMessage: 'Please Enter Valid Strong Password')
                 ])
  );

Report Issues

If you encounter any issues, bugs, or have suggestions for improvements, please report them on the GitHub Issues page.

When reporting an issue, please provide the following information:

  • A clear description of the problem or feature request.
  • Steps to reproduce the issue (if applicable).
  • The version of the Auto Validate package you are using.
  • Any relevant code snippets or screenshots.

Your feedback is invaluable for improving the package and helping others in the community!

Created By

This project is licensed under the MIT License - see the LICENSE file for details

Mahmoud El Shenawy GitHub avatar
GitHub author

Mahmoud El Shenawy ↗

Software Engineer & Team Lead | Flutter • React Native • Laravel

Cairo
LanguagesDart

Packages published by this repository

Dependencies used

Dependency list 3 items

  • flutter{"sdk":"flutter"}
  • collection^1.19.1
  • flutter_testDevelopment{"sdk":"flutter"}

How do I choose a repository?

Start with your use case, compare repository activity, and check the original project before adopting it.

  1. Search by repository name, owner or description, then narrow the results by topic.
  2. Compare stars, forks and recent pushes. Stars show community interest, not a guarantee of quality.
  3. Read the README, license and issues on GitHub before using a project.

Sources and maintenance

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗