| | |
| | |
| | |
| |
|
| | #pragma once |
| |
|
| | #include <QRegularExpression> |
| | #include <QString> |
| | #include <QValidator> |
| |
|
| | class Validation { |
| | public: |
| | Validation() |
| | : room_name(room_name_regex), nickname(nickname_regex), ip(ip_regex), port(0, 65535) {} |
| |
|
| | ~Validation() = default; |
| |
|
| | const QValidator* GetRoomName() const { |
| | return &room_name; |
| | } |
| | const QValidator* GetNickname() const { |
| | return &nickname; |
| | } |
| | const QValidator* GetIP() const { |
| | return &ip; |
| | } |
| | const QValidator* GetPort() const { |
| | return &port; |
| | } |
| |
|
| | private: |
| | |
| | QRegularExpression room_name_regex = |
| | QRegularExpression(QStringLiteral("^[a-zA-Z0-9._\\- ]{4,20}$")); |
| | QRegularExpressionValidator room_name; |
| |
|
| | |
| | QRegularExpression nickname_regex = |
| | QRegularExpression(QStringLiteral("^[a-zA-Z0-9._\\- ]{4,20}$")); |
| | QRegularExpressionValidator nickname; |
| |
|
| | |
| | QRegularExpression ip_regex = QRegularExpression(QStringLiteral( |
| | |
| | "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|" |
| | |
| | "^((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|" |
| | "(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-" |
| | "5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|" |
| | "(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)" |
| | "(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|" |
| | "(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]" |
| | "\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|" |
| | "(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[" |
| | "0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|" |
| | "(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[" |
| | "0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|" |
| | "(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[" |
| | "0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|" |
| | "(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?" |
| | "\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?$|" |
| | |
| | "^([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\\.)+[a-zA-Z]{2,}$")); |
| | QRegularExpressionValidator ip; |
| |
|
| | |
| | QIntValidator port; |
| | }; |
| |
|