forked from yaso_meth/mih-project
add validation service
This commit is contained in:
67
Frontend/lib/mih_apis/mih_validation_services.dart
Normal file
67
Frontend/lib/mih_apis/mih_validation_services.dart
Normal file
@@ -0,0 +1,67 @@
|
||||
class MihValidationServices {
|
||||
String? validateEmail(String? email) {
|
||||
if (email == null || email.isEmpty) {
|
||||
return "Email is required";
|
||||
}
|
||||
final emailRegex =
|
||||
RegExp(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$');
|
||||
if (!emailRegex.hasMatch(email)) {
|
||||
return "Invalid Email Format";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
String? validateUsername(String? username) {
|
||||
String? errorMessage = "";
|
||||
if (username == null || username.isEmpty) {
|
||||
errorMessage += "Username is required";
|
||||
return errorMessage;
|
||||
}
|
||||
if (!RegExp(r'^[a-zA-Z]').hasMatch(username)) {
|
||||
errorMessage += "\n• Your username should start with a letter.";
|
||||
}
|
||||
if (!RegExp(r'^[a-zA-Z0-9_]+$').hasMatch(username)) {
|
||||
errorMessage +=
|
||||
"\n• You can use letters, numbers, and/or underscores only.";
|
||||
}
|
||||
if (username.length < 6 || username.length > 30) {
|
||||
errorMessage += "\n• Keep it between 6 and 30 characters.";
|
||||
}
|
||||
if (RegExp(r'[@#\$]').hasMatch(username)) {
|
||||
errorMessage += "\n• Avoid special characters like @, #, or \$.";
|
||||
}
|
||||
|
||||
if (errorMessage.isEmpty) {
|
||||
return null; // No errors, username is valid
|
||||
}
|
||||
return "Let's create a great username for you!$errorMessage";
|
||||
}
|
||||
|
||||
String? validatePassword(String? password) {
|
||||
String? errorMessage = "";
|
||||
if (password == null || password.isEmpty) {
|
||||
errorMessage += "Password is required";
|
||||
return errorMessage;
|
||||
}
|
||||
if (password.length < 8) {
|
||||
errorMessage += "\n• Contains at least 8 characters long";
|
||||
}
|
||||
if (!RegExp(r'[A-Z]').hasMatch(password)) {
|
||||
errorMessage += "\n• Contains at least 1 uppercase letter";
|
||||
}
|
||||
if (!RegExp(r'[a-z]').hasMatch(password)) {
|
||||
errorMessage += "\n• Contains at least 1 lowercase letter";
|
||||
}
|
||||
if (!RegExp(r'[0-9]').hasMatch(password)) {
|
||||
errorMessage += "\n• Contains at least 1 digit";
|
||||
}
|
||||
if (!RegExp(r'[!@#$%^&*]').hasMatch(password)) {
|
||||
errorMessage += "\n• Contains at least 1 special character (!@#\$%^&*)";
|
||||
}
|
||||
if (errorMessage.isEmpty) {
|
||||
return null; // No errors, password is valid
|
||||
}
|
||||
errorMessage = "Let's create a great password for you!$errorMessage";
|
||||
return errorMessage;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user