๐Ÿ‘‘ King Validation

A lightweight, fast, and easy-to-use Flutter/Dart validation package for validating user input.

Supports both:

  • โœ… Standalone Validators
  • โœ… Flutter Form Validators
  • โœ… Custom Validation Messages
  • โœ… Custom Regular Expressions
  • โœ… Null Safety

โœจ Features

  • ๐Ÿ“ง Email Validation
  • ๐Ÿ”’ Password Validation
  • ๐Ÿ“ฑ Phone Validation
  • ๐Ÿ‘ค Username Validation
  • ๐Ÿ“ Name Validation
  • ๐ŸŒ URL Validation
  • ๐Ÿ“ฆ Empty Validation
  • ๐Ÿ”ข Number Validation
  • ๐Ÿ” OTP Validation
  • ๐Ÿ’ณ Credit Card Validation
  • ๐Ÿ› ๏ธ Custom Validation
  • ๐Ÿ“ Flutter Form Validators
  • ๐ŸŽจ Custom Validation Messages

๐Ÿš€ Installation

Add the package to your pubspec.yaml.

dependencies:
  king_validation: ^1.2.0

Install packages:

flutter pub get

๐Ÿ“ฅ Import

import 'package:king_validation/king_validation.dart';

๐Ÿš€ Quick Start

Standalone Validator

final result = EmailValidator.validate(
  'hero@gmail.com',
);

if (result.isValid) {
  print('Valid Email');
} else {
  print(result.error);
}

Flutter Form Validator

TextFormField(
  decoration: const InputDecoration(
    labelText: 'Email',
  ),
  validator: const EmailFormValidator().call,
)

Custom Validation Messages

TextFormField(
  decoration: const InputDecoration(
    labelText: 'Email',
  ),
  validator: const EmailFormValidator(
    messages: {
      ValidationError.empty:
          'Email is required.',
      ValidationError.invalidEmail:
          'Please enter a valid email.',
    },
  ).call,
)

Every FormValidator supports custom validation messages through the messages parameter.


Custom Regular Expression

TextFormField(
  validator: CustomFormValidator(
    pattern: RegExp(r'^[A-Z0-9]+$'),
  ).call,
)

๐Ÿ“Š Validation Result

Every standalone validator returns a ValidationResult.

final result = EmailValidator.validate(
  'hero@gmail.com',
);

print(result.isValid);
print(result.error);

๐Ÿ“š More Validator Examples

Password

PasswordValidator.validate('Hero@123');

Phone

PhoneValidator.validate('+1234567890');

Username

UsernameValidator.validate('hero_123');

Name

NameValidator.validate('Hero Ahmed');

URL

UrlValidator.validate('https://flutter.dev');

Empty

EmptyValidator.validate('');

Number

NumberValidator.validate('12345');

OTP

OtpValidator.validate('123456');

Credit Card

CreditCardValidator.validate('4111111111111111');

๐Ÿ“‹ Available Validators

Standalone Validators

Validator Description
EmailValidator Validate email addresses
PasswordValidator Validate passwords
PhoneValidator Validate phone numbers
UsernameValidator Validate usernames
NameValidator Validate names
UrlValidator Validate URLs
EmptyValidator Validate empty values
NumberValidator Validate numeric values
OtpValidator Validate OTP codes
CreditCardValidator Validate credit card numbers
CustomValidator Validate custom regular expressions

Flutter Form Validators

Form Validator
EmailFormValidator
PasswordFormValidator
PhoneFormValidator
UsernameFormValidator
NameFormValidator
UrlFormValidator
EmptyFormValidator
NumberFormValidator
OtpFormValidator
CreditCardFormValidator
CustomFormValidator

All Form Validators expose the same API and can be used directly with TextFormField.validator.


๐Ÿ“‚ Example

A complete Flutter example is available in the example/ directory.

The example application demonstrates:

  • โœ… Standalone Validators
  • โœ… Flutter Form Validators
  • โœ… Default Validation Messages
  • โœ… Custom Validation Messages
  • โœ… Custom Regular Expressions
  • โœ… Material 3 UI

๐Ÿงช Quality

  • โœ… 104 Unit Tests
  • โœ… Flutter Example Included
  • โœ… Null Safety
  • โœ… Flutter Support
  • โœ… Dart Support

๐Ÿค Contributing

Contributions, issues, and feature requests are welcome.


๐Ÿ“„ License

MIT License

Made with โค๏ธ using Flutter & Dart.

Libraries

king_validation