emailValidator function
Implementation
String? emailValidator(String elementValue, BuildContext context) {
final value = elementValue.trim().toLowerCase();
final localizations = HyttaHubLocalizations.of(context)!;
if (value.isEmpty) {
return localizations.loginEmailEmptyError;
}
if (value.toLowerCase() != elementValue) {
return localizations.emailLowercaseError;
}
if (value.trim().length != elementValue.length) {
return localizations.emailLeadingTrailingSpacesError;
}
if (value.length > 254) {
return localizations.loginEmailTooLongError;
}
final emailRegex = WrappedRegExp(
r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+",
);
if (!emailRegex.hasMatch(value)) {
return localizations.loginEmailInvalidFormatError;
}
final firebaseReservedPattern = WrappedRegExp(r"^__.*__$");
if (firebaseReservedPattern.hasMatch(value)) {
return localizations.loginEmailReservedError;
}
return null;
}