validate method

  1. @override
String? validate(
  1. BuildContext context,
  2. String fieldName,
  3. String? value
)
override

Function to validate the form input. It takes a string and returns an String error message if the input is invalid or null if the input is valid.

Implementation

@override
String? validate(
  BuildContext context,
  String fieldName,
  String? value,
) {
  _longErrorMessage = null;
  _shortErrorMessage = null;

  if (value != null && value.isNotEmpty) {
    final l10n = context.l10n;

    final validEmailAddress = RegExp(
        r'''^(([^<>()\[\]\\.,;:\s@']+(\.[^<>()\[\]\\.,;:\s@']+)*)|('.+'))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$''');

    _isValid = validEmailAddress.hasMatch(value);
    if (!_isValid) {
      _shortErrorMessage = l10n.invalidMessage;
      _longErrorMessage = l10n.invalidEmailErrorMessage(value);
    }
  } else {
    _isValid = true;
  }
  return _shortErrorMessage;
}