isReasonablyValidArabicName function

bool isReasonablyValidArabicName(
  1. String name, {
  2. int minLength = kDefaultArabicNameMinLength,
  3. int maxLength = kDefaultArabicNameMaxLength,
})

Returns true if name is non-empty, within length bounds, and contains only allowed characters: Unicode letters (including Arabic), spaces, and common diacritics. Use minLength/maxLength to override defaults.

Implementation

bool isReasonablyValidArabicName(
  String name, {
  int minLength = kDefaultArabicNameMinLength,
  int maxLength = kDefaultArabicNameMaxLength,
}) {
  final trimmed = name.trim();
  if (trimmed.isEmpty) return false;
  final length = trimmed.runes.length;
  if (length < minLength || length > maxLength) return false;
  for (final rune in trimmed.runes) {
    if (!_isAllowedNameChar(rune)) return false;
  }
  return true;
}