7 #ifndef VALIDATIONSTRATEGY_H
8 #define VALIDATIONSTRATEGY_H
10 #include <QRegularExpressionValidator>
26 virtual bool isValid(
const QString& input)
const = 0;
48 bool isValid(
const QString& input)
const override
50 const QRegularExpression namePattern(R
"((^[A-Za-z]*$))");
51 return namePattern.match(input).hasMatch();
60 return "Invalid name format";
77 bool isValid(
const QString& input)
const override
79 const QRegularExpression emailPattern(R
"((^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$))");
80 return emailPattern.match(input).hasMatch();
89 return "Invalid email format";
106 bool isValid(
const QString& input)
const override
108 const QRegularExpression passwordPattern(R
"((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,})");
109 return passwordPattern.match(input).hasMatch();
118 return "Password must contain at least 8 characters, 1 digit, 1 lowercase, and 1 uppercase";
135 bool isValid(
const QString& input)
const override
137 const QRegularExpression balancePattern(R
"((^[0-9]*$))");
138 return balancePattern.match(input).hasMatch();
147 return "Invalid balance format";
164 bool isValid(
const QString& input)
const override
166 const QRegularExpression accountNumberPattern(R
"((^[0-9]{6}$))");
167 return accountNumberPattern.match(input).hasMatch();
176 return "Account number must contain 10 digits";
Concrete validation strategy for account numbers.
Definition: ValidationStrategy.h:157
QString errorMessage() const override
Retrieves the error message for an invalid account number.
Definition: ValidationStrategy.h:174
bool isValid(const QString &input) const override
Validates the input string as an account number.
Definition: ValidationStrategy.h:164
Concrete validation strategy for balances.
Definition: ValidationStrategy.h:128
bool isValid(const QString &input) const override
Validates the input string as a balance.
Definition: ValidationStrategy.h:135
QString errorMessage() const override
Retrieves the error message for an invalid balance.
Definition: ValidationStrategy.h:145
Concrete validation strategy for emails.
Definition: ValidationStrategy.h:70
QString errorMessage() const override
Retrieves the error message for an invalid email.
Definition: ValidationStrategy.h:87
bool isValid(const QString &input) const override
Validates the input string as an email.
Definition: ValidationStrategy.h:77
Interface for validation strategies.
Definition: ValidationStrategy.h:19
virtual QString errorMessage() const =0
Retrieves the error message for invalid input.
virtual bool isValid(const QString &input) const =0
Validates the input string.
Concrete validation strategy for names.
Definition: ValidationStrategy.h:41
QString errorMessage() const override
Retrieves the error message for an invalid name.
Definition: ValidationStrategy.h:58
bool isValid(const QString &input) const override
Validates the input string as a name.
Definition: ValidationStrategy.h:48
Concrete validation strategy for passwords.
Definition: ValidationStrategy.h:99
QString errorMessage() const override
Retrieves the error message for an invalid password.
Definition: ValidationStrategy.h:116
bool isValid(const QString &input) const override
Validates the input string as a password.
Definition: ValidationStrategy.h:106