address static method

String? address({
  1. required String address,
  2. String? title = "Address",
  3. String? emptyMessage,
  4. bool trimWhitespace = true,
  5. List<String>? existingAddresses,
  6. String? alreadyExistsMessage,
  7. bool isRequired = true,
  8. int minLength = 10,
  9. int maxLength = 200,
  10. bool requireStreetNumber = false,
  11. bool requireStreetName = true,
  12. bool requireCity = false,
  13. bool requireCountry = false,
  14. bool allowSpecialChars = true,
  15. bool allowNumbers = true,
  16. bool allowLetters = true,
  17. List<String>? forbiddenWords,
  18. List<String>? requiredWords,
  19. String? minLengthMessage,
  20. String? maxLengthMessage,
  21. String? missingStreetNumberMessage,
  22. String? missingStreetNameMessage,
  23. String? missingCityMessage,
  24. String? missingCountryMessage,
  25. String? invalidSpecialCharsMessage,
  26. String? invalidNumbersMessage,
  27. String? invalidLettersMessage,
  28. String? forbiddenWordsMessage,
  29. String? requiredWordsMessage,
})

Validates physical addresses with comprehensive formatting and content rules.

Provides detailed address validation including length constraints, component requirements (street number, street name, city, country), character type restrictions, and content filtering.

Parameters:

  • address: The address string to validate
  • title: Field name for error messages (default: "Address")
  • trimWhitespace: Whether to trim whitespace (default: true)
  • isRequired: Whether the field is required (default: true)
  • minLength, maxLength: Length constraints (default: 10-200)
  • requireStreetNumber, requireStreetName, requireCity, requireCountry: Component requirements
  • allowNumbers, allowLetters, allowSpecialChars: Character type controls
  • forbiddenWords, requiredWords: Content filtering
  • existingAddresses: List of existing addresses to check against
  • Various message parameters for customizing error messages Validates an address with comprehensive checks for structure and content.

Parameters:

  • address: The address string to validate
  • title: Field title for error messages (default: 'Address')
  • emptyMessage: Custom empty validation message
  • trimWhitespace: Whether to trim whitespace (default: true)
  • existingAddresses: List of existing addresses for uniqueness check
  • alreadyExistsMessage: Custom duplicate address message
  • isRequired: Whether empty values are allowed (default: true)
  • minLength: Minimum allowed length (default: 10)
  • maxLength: Maximum allowed length (default: 200)
  • requireStreetNumber: Whether to require a street number (default: false)
  • requireStreetName: Whether to require a street name (default: true)
  • requireCity: Whether to require a city name (default: false)
  • requireCountry: Whether to require a country (default: false)
  • allowSpecialChars: Whether special chars are allowed (default: true)
  • allowNumbers: Whether numbers are allowed (default: true)
  • allowLetters: Whether letters are allowed (default: true)
  • forbiddenWords: List of prohibited words/phrases
  • requiredWords: List of required words/phrases
  • minLengthMessage: Custom minimum length message
  • maxLengthMessage: Custom maximum length message
  • missingStreetNumberMessage: Custom missing street number message
  • missingStreetNameMessage: Custom missing street name message
  • missingCityMessage: Custom missing city message
  • missingCountryMessage: Custom missing country message
  • invalidSpecialCharsMessage: Custom invalid special chars message
  • invalidNumbersMessage: Custom invalid numbers message
  • invalidLettersMessage: Custom invalid letters message
  • forbiddenWordsMessage: Custom forbidden words message
  • requiredWordsMessage: Custom required words message

Returns null if valid, or an error message if invalid.

Example:

final error = SahihValidator.address(
  address: '123 Main St, Springfield',
  requireCity: true,
  requireCountry: true
);

Implementation

static String? address({
  required String address,
  String? title = "Address",
  String? emptyMessage,
  bool trimWhitespace = true,
  List<String>? existingAddresses,
  String? alreadyExistsMessage,
  bool isRequired = true,
  int minLength = 10,
  int maxLength = 200,
  bool requireStreetNumber = false,
  bool requireStreetName = true,
  bool requireCity = false,
  bool requireCountry = false,
  bool allowSpecialChars = true,
  bool allowNumbers = true,
  bool allowLetters = true,
  List<String>? forbiddenWords,
  List<String>? requiredWords,
  String? minLengthMessage,
  String? maxLengthMessage,
  String? missingStreetNumberMessage,
  String? missingStreetNameMessage,
  String? missingCityMessage,
  String? missingCountryMessage,
  String? invalidSpecialCharsMessage,
  String? invalidNumbersMessage,
  String? invalidLettersMessage,
  String? forbiddenWordsMessage,
  String? requiredWordsMessage,
}) {
  return validateAddress(
    address: address,
    emptyMessage: emptyMessage,
    trimWhitespace: trimWhitespace,
    existingAddresses: existingAddresses,
    alreadyExistsMessage: alreadyExistsMessage,
    isRequired: isRequired,
    minLength: minLength,
    maxLength: maxLength,
    requireStreetNumber: requireStreetNumber,
    requireStreetName: requireStreetName,
    requireCity: requireCity,
    requireCountry: requireCountry,
    allowSpecialChars: allowSpecialChars,
    allowNumbers: allowNumbers,
    allowLetters: allowLetters,
    forbiddenWords: forbiddenWords,
    requiredWords: requiredWords,
    minLengthMessage: minLengthMessage,
    maxLengthMessage: maxLengthMessage,
    missingStreetNumberMessage: missingStreetNumberMessage,
    missingStreetNameMessage: missingStreetNameMessage,
    missingCityMessage: missingCityMessage,
    missingCountryMessage: missingCountryMessage,
    invalidSpecialCharsMessage: invalidSpecialCharsMessage,
    invalidNumbersMessage: invalidNumbersMessage,
    invalidLettersMessage: invalidLettersMessage,
    forbiddenWordsMessage: forbiddenWordsMessage,
    requiredWordsMessage: requiredWordsMessage,
    title: title,
  );
}