datavalidator
2.0.2

DataValidator está diseñado para ser una biblioteca de validación de datos simple.
Soporte: [email protected]
$ boss install github.com/dliocode/datavalidatorAgregue las siguientes carpetas a su proyecto, en Proyecto> Opciones> Compilador Delphi> Ruta de búsqueda
../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;
Verifique : Verifique todo el validato , pero si hay un elemento de retorno falso que interrumpe, devolviendo un solo mensaje con error si lo ha hecho.
Comprobar : Verifique todos los validados , devolviendo todos los mensajes con error si lo ha hecho!
Usando el CheckAll(TDataValidatorCheckAll.tcFirst) solo devuelve el primer mensaje de error de cada validar .
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.
El desinfectante es el tratamiento de un valor.
Ejemplo: desinfectantes MD5: tome el valor de validar y convierta a MD5
TDataValidator.Values
.Validate('APELIDO')
.ToMD5
.&End
| Nombre | Información |
|---|---|
| No | Cuando se usa este validador, niega el resultado del validador. Ej: validar ('correo electrónico'). & No.isempty Se entiende que el valor no debe estar vacío. |
| Correr | Define lo que debe realizarse si ese validato no pasa la validación. La ejecución de este procedimiento es una forma manual. Ex: Checkall.informations.getItem (0) .onexecute; |
| ConMessage | Define el mensaje de error. Para agregar el valor validado al mensaje, simplemente agregue la etiqueta $ {value} . Ej: isemail.withMessage ('Correo electrónico $ {valor} no es válido!') . output: E-mail null@@null está inválido! |
| Validación para valores | Validación JSON (clave/valor) | Desinfectantes para valores |
|---|---|---|
| Valor personalizado | (Llave) | Personalizador |
| Contiene | (Clave) se requería | Correo electrónico |
| Poner fin a | (Valor) CustomJSONValue | SOLO Numbers |
| Isalfa | (Valor) isjsjonnull | Eliminación |
| Isalfanumérico | (Valor) isjsonboolean | Reemplazar |
| Isacii | (Valor) isjsonnumérico | Tobase64Decode |
| Isbase32 | (Valor) isjsonstring | Tobase64code |
| Isbase58 | (Valor) minemtes | Todo |
| Isbase64 | (Valor) maxites | Todo -atetime |
| Entre isbet | (Valor) + validación para valores | Tohtmldecode |
| Isbooleano | Tohtmlencode | |
| Isbtcaddress | Tointeger | |
| ISCNPJ | Cajón | |
| ISCPF | Tomd5 | |
| ISCPFCNPJ | Tonumérico | |
| Isdate | Tío | |
| ISDATEBETWARE | Touppercase | |
| Isdatequals | Punto de comunicación | |
| Isdategretethan | Tourlencode | |
| Isdatelesthan | Recortar | |
| ISdatetime | Timleft | |
| Ismail | Trillado | |
| Ismpty | ||
| Esequals | ||
| Ishereumaddress | ||
| Isgaterthan | ||
| Isgtin | ||
| Isgtin8 | ||
| Isgtin12 | ||
| Isgtin13 | ||
| Isgtin14 | ||
| Ishexadecimal | ||
| Ishexcolor | ||
| ISINTGEGER | ||
| ISIP | ||
| ISIPV4 | ||
| ISIPV6 | ||
| ISISO8601 | ||
| Isjson | ||
| Isjsonarray | ||
| IsjsonObject | ||
| ISJWT | ||
| Islatlong | ||
| Longitud | ||
| No | ||
| Islocale | ||
| Islowercase | ||
| Ismacaddress | ||
| Ismagneturi | ||
| ISMD5 | ||
| ISMIMETYPE | ||
| Ismongoide | ||
| Es nogativo | ||
| Esnumérico | ||
| Isootal | ||
| Isocal | ||
| IspassportNumber | ||
| Número de nubes | ||
| Esport | ||
| Ispositivo | ||
| Código ispostal | ||
| Isrgbcolor | ||
| ISSSN | ||
| ISTIME | ||
| ISTIMEBETWARE | ||
| Istimeequals | ||
| IstimeGreatethan | ||
| Istimelesthan | ||
| Isuppercase | ||
| ISURN | ||
| Isuuídico | ||
| Isuuidv1 | ||
| Isuuidv2 | ||
| Isuuidv3 | ||
| Isuuidv4 | ||
| Isuuidv5 | ||
| Iszero | ||
| Regexismo | ||
| Comienzo |