
Datavalidator ist eine einfache Datenvalidierungsbibliothek.
Support: [email protected]
$ boss install github.com/dliocode/datavalidatorFügen Sie Ihrem Projekt die folgenden Ordner hinzu, in Projekt> Optionen> Delphi Compiler> Suchpfad
../datavalidator/src/core
../datavalidator/src/sanitializators
../datavalidator/src/validators
uses DataValidator;
var
LResult: IDataValidatorResult;
begin
LResult :=
TDataValidator.Values
.Validate('APELIDO')
.Trim
.&Not.IsEmpty.WithMessage('Você não informou o seu apelido!')
.IsAlpha(TDataValidatorLocaleLanguage.tl_pt_BR).WithMessage('Seu apelido deve conter apenas letras!')
.IsLength(1, 10).WithMessage('O apelido deve ter no máximo 10 caracteres!')
.&End
.Validate('[email protected]')
.Trim
.&Not.IsEmpty.WithMessage('Você não informou o seu e-mail!')
.IsEmail.WithMessage('Não é um e-mail válido!')
.NormalizeEmail
.&End
.Check;
var
LJO: TJSONObject;
LResult: IDataValidatorResult;
begin
LJO := TJSONObject.ParseJSONValue('{"apelido":"DLIO", "email":"[email protected]"}') as TJSONObject;
LResult :=
TDataValidator.JSON(AJO)
.Validate('apelido')
.Value
.Trim
.&Not.IsEmpty.WithMessage('Você não informou o seu apelido!')
.IsAlpha(TDataValidatorLocaleLanguage.tl_pt_BR).WithMessage('Seu apelido deve conter apenas letras!')
.IsLength(1, 10).WithMessage('O apelido deve ter no máximo 10 caracteres!')
.&End
.&End
.Validate('email')
.Value
.Trim
.&Not.IsEmpty.WithMessage('Você não informou o seu e-mail!')
.IsEmail.WithMessage('Não é um e-mail válido!')
.NormalizeEmail
.&End
.&End
.Validate('login')
.Key // Faz a validação somente da key
.IsRequired.WithMessage('É obrigatório ter a Key "login" no JSON.')
.&End
.Value // Faz a validação somente do valor dentro da Key 'login'
.Trim
.&Not.IsEmpty.WithMessage('Você não informou o login!')
.IsAlpha(TDataValidatorLocaleLanguage.tl_pt_BR).WithMessage('Seu login deve conter apenas letras!')
.IsLength(1, 10).WithMessage('O login deve ter no máximo 10 caracteres!')
.&End
.&End
.Validate('nome')
.Key
.IsOptionalKey // É opcional - se existir a Key "nome" ele faz a validação
.&End
.Value
.Trim
.&Not.IsEmpty.WithMessage('Você não informou o nome!')
.IsAlpha(TDataValidatorLocaleLanguage.tl_pt_BR).WithMessage('Seu nome deve conter apenas letras!')
.IsLength(1, 10).WithMessage('O nome deve ter no máximo 10 caracteres!')
.&End
.&End
.CheckAll;
Überprüfen Sie : Überprüfen Sie alle Überprüfungen , aber wenn ein falsches Rückgabelement vorliegt, unterbricht es eine einzelne Nachricht mit einem Fehler, wenn Sie haben!
Überprüfen Sie : Überprüfen Sie alle Validaten und geben Sie alle Nachrichten mit einem Fehler zurück, wenn Sie haben!
Verwenden des CheckAll(TDataValidatorCheckAll.tcFirst) werden nur die erste Fehlermeldung von jedem Validaten zurückgegeben.
Result := LResult.Ok; // True = Nenhum erro | False = Tem erro
Result := LResult.Informations.Message;
Result := LResult.Informations.GetItem(0).Message;
Result := LResult.Informations.Count;
Result := LResult.Values[0]; // Recupera o primeiro valor
function SchemaNome(const AField: string): IDataValidatorSchemaContext;
begin
Result :=
TDataValidator.Schema
.Validate
.Trim
.&Not.IsEmpty.WithMessage('Preencha o campo %s !', [AField]) // Não pode ser vazio
.IsLength(2, 10).WithMessage('O campo %s deve conter entre 2 a 10 caracteres!', [AField])
.IsAlpha(TDataValidatorLocaleLanguage.tl_pt_BR).WithMessage('O campo %s possui caracteres inválidos!', [AField])
.&End;
end;
function SchemaEmail(const AField: string): IDataValidatorSchemaContext;
begin
Result :=
TDataValidator.Schema
.Validate
.Trim
.&Not.IsEmpty.WithMessage('O %s não pode ser vazio!',[AField])
.IsLength(2, 999).WithMessage('O campo %s deve ter mais de 6 caracteres!', [AField])
.IsEmail.WithMessage('Não é um %s válido!',[AField])
.NormalizeEmail
.&End;
end;
begin
TDataValidator.Values
.Validate(ANome)
.AddSchema(SchemaNome('Nome'))
.&End
.Validate(AApelido)
.AddSchema(SchemaNome('Apelido'))
.IsUppercase.WithMessage('O apelido (${value}) deve ser digitado tudo em maiúscula!') // Add outra validação
.&End
.Validate(AEmail)
.AddSchema(SchemaEmail('E-mail'))
.&End
.Validate(AEmailConfirmacao)
.AddSchema(SchemaEmail('E-mail de confirmação'))
.&End
.CheckAll;
end.
Sanitierer ist die Behandlung eines Wertes.
Beispiel: Desinfektionsmittel MD5: Nehmen Sie den Validierungswert und konvertieren Sie sie in MD5
TDataValidator.Values
.Validate('APELIDO')
.ToMD5
.&End
| Name | Information |
|---|---|
| Nicht | Bei Verwendung dieses Validators verweigert es das Validator -Ergebnis. Beispiel: Validate ('E -Mail'). & Nicht.Isempty Es wird davon ausgegangen, dass der Wert nicht leer sein sollte. |
| Laufen | Definiert, was ausgeführt werden soll, wenn dieser Validium die Validierung nicht überschreitet. Die Ausführung dieses Verfahrens ist manuelles Formular. Ex: Checkall.informations.getItem (0) .onexexcute; |
| Mit Message | Definiert die Fehlermeldung. Um den validierten Wert zur Nachricht hinzuzufügen, fügen Sie einfach das $ {value} -Tag hinzu. Ex: isemail.withmessage ('E -Mail $ {value} ist ungültig!') . output: E-mail null@@null está inválido! |
| Validierung für Werte | Validierung JSON (Schlüssel/Wert) | Sanitärer für Werte |
|---|---|---|
| CustomValue | (Schlüssel) | Customizer |
| Enthält | (Schlüssel) isRequired | NormalizeEemail |
| Endswith | (Wert) CustomJsonValue | Nur inampass |
| ISALPHA | (Wert) Isjsjonnull | RemoveAcccents |
| ISalphanumeric | (Wert) isjsonboolean | Ersetzen |
| Isacii | (Wert) isjsonnumeric | TOBASE64DECODE |
| ISBase32 | (Wert) Isjonstring | TOBASE64CODE |
| ISBase58 | (Wert) Minemten | Alle |
| ISBase64 | (Wert) Maxiten | Alles -atetime |
| Zwischen | (Wert) + Validierung für Werte | Tohtmldecode |
| Isboolean | Tohtmlencode | |
| IsBtcaddress | Tointeger | |
| Iscnpj | Tolowercase | |
| Iscpf | Tomd5 | |
| IsCPFCNPJ | Tonumerisch | |
| Isdate | Totime | |
| Isdatebet dazwischen | Touppercase | |
| Isdatequals | TourDecode | |
| Isdategretethan | Tourlencode | |
| Isdatelesthan | Trimmen | |
| Isdatetime | TrimLeft | |
| Ismail | Trimright | |
| Ismpty | ||
| Isequals | ||
| Isethereumaddress | ||
| Isgaterthan | ||
| Isgtin | ||
| Isgtin8 | ||
| Isgtin12 | ||
| Isgtin13 | ||
| Isgtin14 | ||
| IShexadecimal | ||
| IShexcolor | ||
| Issineger | ||
| ISIP | ||
| ISIPV4 | ||
| ISIPv6 | ||
| ISISO8601 | ||
| Isjson | ||
| IsjsonArray | ||
| IsjsonObject | ||
| Isjwt | ||
| Islatlong | ||
| ISLength | ||
| Islessthan | ||
| Islocale | ||
| Islowercase | ||
| Ismacaddress | ||
| Ismagneturi | ||
| Ismd5 | ||
| Ismimetyp | ||
| Ismongoid | ||
| Ist negativ | ||
| Isnumerisch | ||
| Isootal | ||
| Isokal | ||
| IsPasssportnumber | ||
| ISPHONEUMUBER | ||
| ISPS | ||
| Ispositiv | ||
| ISPOSTALCODE | ||
| Isrgbcolor | ||
| Issn | ||
| ISTIME | ||
| IsTimeBetween | ||
| IStimeequals | ||
| IsTimeGreatethan | ||
| Istimelesthan | ||
| Isuppercase | ||
| Isurn | ||
| Isuuid | ||
| Isuuidv1 | ||
| Isuuidv2 | ||
| Isuuidv3 | ||
| Isuuidv4 | ||
| Isuuidv5 | ||
| Iszero | ||
| Regexismatch | ||
| Starten |