isValidEngineerID static method

bool isValidEngineerID(
  1. String engineerId
)

Validates Spanish Engineer ID (Colegiado).

Format: COITI/COGITI standard format

  • Provincial: "MAD-12345", "BCN-54321" (2-3 letter province + hyphen + 3-10 digits)
  • Alternative: Letters followed by digits "ABC12345"

Examples:

  • ✅ Valid: "MAD-12345", "BCN-987", "COITI-12345", "ABC1234"
  • ❌ Invalid: "---123", "ABC", "12345" (no letters), "A-B-C-1-2-3"

Implementation

static bool isValidEngineerID(String engineerId) {
  if (engineerId.isEmpty) return false;

  // Strict format: Province code (2-5 letters) + hyphen + 3-10 digits
  // OR: Letters (2-5) followed directly by 3-10 digits
  final strictFormat = RegExp(r'^[A-Z]{2,5}-\d{3,10}$');
  final alternateFormat = RegExp(r'^[A-Z]{2,5}\d{3,10}$');

  return strictFormat.hasMatch(engineerId.toUpperCase()) ||
      alternateFormat.hasMatch(engineerId.toUpperCase());
}