phone static method

String? phone(
  1. String? value, {
  2. int min = 8,
  3. int max = 15,
})

Validates that the input is a valid phone number.

Implementation

static String? phone(String? value, {int min = 8, int max = 15}) {
  if (value == null || value.trim().isEmpty) {
    return 'Phone number is required';
  }

  final cleaned = value.replaceAll(RegExp(r'[\s\-\(\)\+]'), '');

  if (cleaned.length < min) {
    return 'Phone number must be at least $min digits';
  }

  if (cleaned.length > max) {
    return 'Phone number must be at most $max digits';
  }

  if (!RegExp(r'^[0-9]+$').hasMatch(cleaned)) {
    return 'Phone number can only contain digits and formatting characters';
  }

  return null;
}