emails_validator 1.0.2
emails_validator: ^1.0.2 copied to clipboard
Simple and efficient email address validator for Dart. Validates email syntax without using regular expressions, following RFC standards with detailed debug information.
Emails Validator #
Simple and efficient email address validator for Dart. Validates email syntax without using regular expressions.
Live Demo #
Try the interactive web demo: Live Demo
The demo allows you to test email validation in real-time with detailed debug information.
Features #
- ✅ Simple and clear validation logic
- ✅ No external dependencies
- ✅ Detailed debug information
- ✅ Support for validating lists of email addresses
- ✅ RFC standards compliance
- ✅ High performance
Installation #
Add the dependency to your pubspec.yaml
:
dependencies:
emails_validator: ^1.0.2
Then run:
dart pub get
Usage #
Basic Validation #
import 'package:emails_validator/emails_validator.dart';
void main() {
// Validate single email
final isValid = EmailsValidator.validate('user@example.com');
print(isValid); // true
// Validate invalid email
final isInvalid = EmailsValidator.validate('invalid-email');
print(isInvalid); // false
}
Validating List of Email Addresses #
final emails = [
'user@example.com',
'invalid-email',
'test@domain.co.uk',
'@example.com',
];
// Get validation results for all emails
final results = EmailsValidator.validateList(emails);
// Result: {'user@example.com': true, 'invalid-email': false, ...}
// Get only valid emails
final validEmails = EmailsValidator.getValidEmails(emails);
// Result: ['user@example.com', 'test@domain.co.uk']
// Get only invalid emails
final invalidEmails = EmailsValidator.getInvalidEmails(emails);
// Result: ['invalid-email', '@example.com']
Debug Information #
The validator outputs detailed debug information to the console:
[DEBUG] EmailsValidator: Starting email validation: user@example.com
[DEBUG] EmailsValidator: Email after trim: "user@example.com"
[DEBUG] EmailsValidator: Local part: "user"
[DEBUG] EmailsValidator: Domain: "example.com"
[DEBUG] EmailsValidator: Email is valid!
Supported Formats #
Valid Email Addresses #
user@example.com
test.email@domain.co.uk
user+tag@example.org
user.name@example.com
user_name@example.com
user-name@example.com
user123@example.com
user@subdomain.example.com
Invalid Email Addresses #
invalid-email
(no @)@example.com
(@ at beginning)user@
(no domain)user@.com
(empty domain part)user..name@example.com
(consecutive dots)user@-example.com
(hyphen at beginning of domain)user@example-.com
(hyphen at end of domain)
Validation Rules #
-
General Rules:
- Email cannot be null or empty
- Minimum length: 5 characters
- Maximum length: 254 characters
- Must contain exactly one @ symbol
-
Local Part (before @):
- Cannot be empty
- Maximum length: 64 characters
- Allowed characters: letters, numbers,
!#$%&'*+-/=?^_
{|}~.` - Dot cannot be first or last character
-
Domain (after @):
- Cannot be empty
- Maximum length: 253 characters
- Must contain at least 2 parts (e.g., example.com)
- Each part no longer than 63 characters
- Allowed characters: letters, numbers, hyphen
- Hyphen cannot be first or last character of part
- Last part (TLD) minimum 1 character (e.g. test domains like .c)
Interactive Web Demo #
The project includes a Flutter Web demo application that demonstrates the email validation functionality.
Testing #
Run tests:
dart test
Performance #
The validator is optimized for high performance:
- No regular expressions used
- Minimal string operations
- Efficient character checking
License #
MIT License