isDomainValid method
Implementation
bool isDomainValid() {
if (isEmpty) return false;
// Check for valid domain format
// Supports: domain.com, subdomain.domain.com, mail.university.edu.eg, etc.
final RegExp domainRegex = RegExp(
r'^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$',
caseSensitive: false,
);
if (!domainRegex.hasMatch(this)) return false;
final List<String> parts = split('.');
// Must have at least 2 parts (domain.tld)
if (parts.length < 2) return false;
// TLD should be 2-6 characters
final String tld = parts.last;
if (tld.length < 2 || tld.length > 6) return false;
// Each part should not be empty and not exceed 63 characters
for (final String part in parts) {
if (part.isEmpty || part.length > 63) return false;
// Should not start or end with hyphen
if (part.startsWith('-') || part.endsWith('-')) return false;
}
return true;
}