isFullDomainName static method
bool
isFullDomainName(
- String str, {
- bool requireTld = true,
- bool allowUnderscores = false,
})
Implementation
static bool isFullDomainName(
String str, {
bool requireTld = true,
bool allowUnderscores = false,
}) {
var parts = str.split('.');
if (requireTld) {
var tld = parts.removeLast();
if (parts.isEmpty || !RegExp(r'^[a-z]{2,}$').hasMatch(tld)) {
return false;
}
}
for (var part in parts) {
if (allowUnderscores) {
if (part.contains('__')) {
return false;
}
}
if (!RegExp(r'^[a-z\\u00a1-\\uffff\d-]+$').hasMatch(part)) {
return false;
}
if (part[0] == '-' || part[part.length - 1] == '-' || part.contains('---')) {
return false;
}
}
return true;
}