validatePhoneNumber method

String? validatePhoneNumber(
  1. String phoneNumber, {
  2. required String invalidPrefixMessage,
  3. required String tooShortMessage,
  4. required String tooLongMessage,
})

Full phone number validation

Implementation

String? validatePhoneNumber(String phoneNumber, {
  required String invalidPrefixMessage,
  required String tooShortMessage,
  required String tooLongMessage,
}) {
  final cleanNumber = phoneNumber.replaceAll(RegExp(r'[\s\-]'), '');

  if (cleanNumber.isEmpty) {
    return null; // Let required validator handle empty
  }

  // Check prefix
  if (!hasValidPrefix(cleanNumber)) {
    return invalidPrefixMessage;
  }

  // Check length
  if (cleanNumber.length < minPhoneChars) {
    return tooShortMessage;
  }

  if (cleanNumber.length > maxPhoneChars) {
    return tooLongMessage;
  }

  return null; // Valid
}