validate method
FutureOr<ValidationResult?>
validate(
- BuildContext context,
- String? value,
- FormValidationMode state
override
Validates the given value and returns a validation result.
This method performs the actual validation logic and should return null if the value is valid, or a ValidationResult describing the validation error if invalid.
Parameters:
context(BuildContext): The build context for localization accessvalue(T?): The value to validate (may be null)lifecycle(FormValidationMode): The current validation trigger mode
Returns a FutureOr<ValidationResult?> that is null for valid values
or contains error information for invalid values.
Implementation
@override
FutureOr<ValidationResult?> validate(
BuildContext context, String? value, FormValidationMode state) {
if (value == null) {
return null;
}
if (requireDigit && !RegExp(r'\d').hasMatch(value)) {
return InvalidResult(
message ??
Localizations.of(context, ShadcnLocalizations).formPasswordDigits,
state: state);
}
if (requireLowercase && !RegExp(r'[a-z]').hasMatch(value)) {
return InvalidResult(
message ??
Localizations.of(context, ShadcnLocalizations)
.formPasswordLowercase,
state: state);
}
if (requireUppercase && !RegExp(r'[A-Z]').hasMatch(value)) {
return InvalidResult(
message ??
Localizations.of(context, ShadcnLocalizations)
.formPasswordUppercase,
state: state);
}
if (requireSpecialChar && !RegExp(r'[\W_]').hasMatch(value)) {
return InvalidResult(
message ??
Localizations.of(context, ShadcnLocalizations)
.formPasswordSpecial,
state: state);
}
return null;
}