username static method

String? username(
  1. String? value, {
  2. int minLength = 3,
  3. int maxLength = 20,
})

Validates that the input is a valid username.

Implementation

static String? username(
  String? value, {
  int minLength = 3,
  int maxLength = 20,
}) {
  if (value == null || value.isEmpty) return 'Username is required';

  if (value.length < minLength) {
    return 'Username must be at least $minLength characters';
  }

  if (value.length > maxLength) {
    return 'Username must be at most $maxLength characters';
  }

  if (!RegExp(r'^[a-zA-Z0-9_]+$').hasMatch(value)) {
    return 'Username can only contain letters, numbers, and underscores';
  }

  if (RegExp(r'^[0-9]').hasMatch(value)) {
    return 'Username cannot start with a number';
  }

  return null;
}