isFQDN function

  1. @experimental
bool isFQDN(
  1. String str, {
  2. bool requireTld = true,
  3. bool allowUnderscores = false,
})

Returns true if str is a valid fully-qualified domain name.

Implementation

@experimental
bool isFQDN(String str, {bool requireTld = true, bool allowUnderscores = false}) {
  final parts = str.split('.');

  if (requireTld) {
    final tld = parts.removeLast();
    if (parts.isEmpty || !fqdnTldReg.hasMatch(tld)) return false;
  }

  for (final part in parts) {
    if (allowUnderscores && part.contains('__')) return false;
    if (!fqdnLabelReg.hasMatch(part)) return false;
    if (part.startsWith('-') || part.endsWith('-') || part.contains('---')) {
      return false;
    }
  }

  return true;
}