phone static method

FormFieldValidator<String> phone([
  1. String message = 'Invalid phone number'
])

Fails when a non-empty value isn't a plausible phone number (digits, spaces and + - ( ), 7–15 digits).

Implementation

static FormFieldValidator<String> phone(
        [String message = 'Invalid phone number']) =>
    (value) {
      if (value == null || value.isEmpty) return null;
      final digits = value.replaceAll(RegExp(r'[^0-9]'), '');
      final shape = RegExp(r'^\+?[0-9\s\-()]+$');
      return (shape.hasMatch(value) &&
              digits.length >= 7 &&
              digits.length <= 15)
          ? null
          : message;
    };