|
1 | 1 | import 'package:email_validator/email_validator.dart'; |
2 | 2 |
|
3 | 3 | void main() { |
4 | | - const String email = 'fredrik.eilertsen@gail.com'; |
5 | | - final bool isValid = EmailValidator.validate(email); |
| 4 | + // Basic validation — default: allowTopLevelDomains=false, allowInternational=true |
| 5 | + final examples = [ |
| 6 | + ('user@example.com', 'standard address'), |
| 7 | + ('invalid-email', 'missing @'), |
| 8 | + ('user@', 'missing domain'), |
| 9 | + ('" "@example.org', 'quoted space — valid per RFC'), |
| 10 | + ]; |
6 | 11 |
|
7 | | - print('Email is valid? ${isValid ? 'yes' : 'no'}'); |
| 12 | + print('--- Basic validation ---'); |
| 13 | + for (final (email, note) in examples) { |
| 14 | + final valid = EmailValidator.validate(email); |
| 15 | + print(' ${valid ? '✓' : '✗'} $email ($note)'); |
| 16 | + } |
| 17 | + |
| 18 | + // Allow top-level domains (useful for intranet/localhost addresses) |
| 19 | + print('\n--- allowTopLevelDomains = true ---'); |
| 20 | + for (final email in ['admin@localhost', 'user@intranet']) { |
| 21 | + final valid = EmailValidator.validate(email, true); |
| 22 | + print(' ${valid ? '✓' : '✗'} $email'); |
| 23 | + } |
| 24 | + |
| 25 | + // International addresses (enabled by default) |
| 26 | + print('\n--- International addresses (default: allowed) ---'); |
| 27 | + final international = [ |
| 28 | + '伊昭傑@郵件.商務', // Chinese |
| 29 | + 'θσερ@εχαμπλε.ψομ', // Greek |
| 30 | + ]; |
| 31 | + for (final email in international) { |
| 32 | + final validOn = EmailValidator.validate(email); // allowInternational=true |
| 33 | + final validOff = |
| 34 | + EmailValidator.validate(email, false, false); // allowInternational=false |
| 35 | + print(' allowed=$validOn rejected=${!validOff} $email'); |
| 36 | + } |
8 | 37 | } |
0 commit comments