validateSubdomain function
Implementation
Map<String, dynamic> validateSubdomain(String subdomain) {
final parts = subdomain.split('.');
if (parts.length != 3 || parts[0].length < 2) {
return {
'valid': false,
'message':
'Invalid subdomain format. Format should follow {subdomain}.{primary-domain}.xrd',
};
}
if (subdomain.contains('_')) {
return {
'valid': false,
'message': 'Special characters are not permitted (except for hyphens).',
};
}
final regex = RegExp(
r'^(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9\-]{1,61}[a-zA-Z0-9]))(\.([a-zA-Z0-9][a-zA-Z0-9\-]{1,61}[a-zA-Z0-9]))*\.xrd$');
if (!regex.hasMatch(subdomain)) {
return {
'valid': false,
'message': 'Please enter a valid subdomain name format.',
};
}
return {
'valid': true,
'message': '',
};
}