datavalidator
2.0.2

DataValidator est conçu pour être une simple bibliothèque de validation des données.
Support: dé[email protected]
$ boss install github.com/dliocode/datavalidatorAjoutez les dossiers suivants à votre projet, dans Project> Options> Compiler Delphi> Chemin de recherche
../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;
Vérifiez : vérifiez tout le validation , mais s'il y a un faux élément de retour, il interrompt, renvoyant un seul message avec erreur si vous avez!
CheckAll : Vérifiez tout le validation , renvoyant tous les messages avec erreur si vous en avez!
En utilisant le CheckAll(TDataValidatorCheckAll.tcFirst) il ne renvoie que le premier message d'erreur de chaque validate .
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.
Le désinfectant est le traitement d'une valeur.
Exemple: désinfectants MD5: prenez la valeur valide et convertissez en MD5
TDataValidator.Values
.Validate('APELIDO')
.ToMD5
.&End
| Nom | Information |
|---|---|
| Pas | Lorsqu'il est utilisé ce validateur, il nie le résultat du validateur. Ex: valider ('e-mail'). & Not.isempty Il est entendu que la valeur ne devrait pas être vide. |
| Courir | Définit ce qui doit être effectué si ce validate ne transmet pas la validation. L'exécution de cette procédure est une forme manuelle. Ex: Checkall.informations.getItem (0) .Onexecute; |
| Withmessage | Définit le message d'erreur. Pour ajouter la valeur validée au message, ajoutez simplement la balise $ {valeur} . Ex: iSemail.WithMessage ('Email $ {valeur} est invalide!') . output: E-mail null@@null está inválido! |
| Validation des valeurs | Validation JSON (clé / valeur) | Désinfectants pour les valeurs |
|---|---|---|
| CustomValue | (Clé) | Personnalisateur |
| Contient | (Clé) est réduit | Normaliseeemail |
| Mettre fin à | (Valeur) CustomJsonValue | Seulement les nombres |
| Isalpha | (Valeur) Isjsjonnull | RemoveAccents |
| Isalphanumérique | (Valeur) Isjsonboolean | Remplacer |
| Isacii | (Valeur) IsjsonNumeric | Tobase64decode |
| IsBase32 | (Valeur) ISJSONSTRING | Tobase64encode |
| ISBASE58 | (Valeur) Minemtes | Tous |
| IsBase64 | (Valeur) Maxites | Tout -atetime |
| Entre les deux | (Valeur) + validation pour les valeurs | Tohtmldecode |
| Isboolean | Tohtmlencode | |
| ISBTCADdress | Tointeger | |
| Iscnpj | Tolowercase | |
| Iscpf | Tomd5 | |
| Iscpfcnpj | Tonumérique | |
| Isdate | Total | |
| Entre les deux | Touppercase | |
| Isdatequals | TourldeCode | |
| IsdateGretethan | Tourlencode | |
| Isdatesthan | Garniture | |
| Isdatetime | Trimleft | |
| Ismail | Brillant | |
| Ismpy | ||
| Isolé | ||
| Isethereumaddress | ||
| Isgaterthan | ||
| Isgtin | ||
| Isgtin8 | ||
| Isgtin12 | ||
| Isgtin13 | ||
| Isgtin14 | ||
| Ishexadécimal | ||
| Ishexcolor | ||
| IsInteger | ||
| Isip | ||
| Isipv4 | ||
| Isipv6 | ||
| Isiso8601 | ||
| Isjson | ||
| IsjsonArray | ||
| IsjsonObject | ||
| Isjwt | ||
| Islatlong | ||
| IsLength | ||
| Inslesshan | ||
| Islocale | ||
| Islowercase | ||
| Ismacaddress | ||
| Ismagneturi | ||
| ISMD5 | ||
| Ismimetype | ||
| Ismongoïde | ||
| Isnafative | ||
| Isnomérique | ||
| Isootal | ||
| Isocal | ||
| IspassportNumber | ||
| ISphonenumber | ||
| ISport | ||
| Isapitif | ||
| ISpostalcode | ||
| Isrgbcolor | ||
| Isssn | ||
| Istime | ||
| Istime-Between | ||
| Istimeequals | ||
| Istimedrereatrethan | ||
| Istimelesthan | ||
| Isuppercercase | ||
| Isur | ||
| Isuuide | ||
| ISUUIDV1 | ||
| ISUUIDV2 | ||
| ISUUIDV3 | ||
| ISUUIDV4 | ||
| ISUUIDV5 | ||
| Iszero | ||
| Rejette | ||
| Startwith |