datavalidator
2.0.2

Datavalidator는 간단한 데이터 검증 라이브러리로 설계되었습니다.
지원 : [email protected]
$ boss install github.com/dliocode/datavalidator프로젝트> 옵션> 델파이 컴파일러> 검색 경로 에서 다음 폴더 추가 프로젝트에 추가
../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;
점검 : 모든 유효성 검사를 확인하십시오. 그러나 허위 반환 항목이 있으면 인터럽트가 발생하면 오류가있는 경우 단일 메시지를 반환합니다!
Checkall : 모든 유효성 검사를 확인하여 오류가 있으면 모든 메시지를 반환하십시오!
CheckAll(TDataValidatorCheckAll.tcFirst) 사용하면 각 유효성 검사 에서 첫 번째 오류 메시지 만 반환합니다.
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.
소독제 는 값의 처리입니다.
예 : 소금사 MD5 : validate 값을 가져 와서 MD5로 변환합니다.
TDataValidator.Values
.Validate('APELIDO')
.ToMD5
.&End
| 이름 | 정보 |
|---|---|
| 아니다 | 이 유효성 검사기를 사용하면 유효성 검사 결과를 거부합니다. 예 : Validate ( '이메일'). & not.isempty 값이 비어 있지 않아야한다는 것이 이해됩니다. |
| 달리다 | 유효성 검사가 유효성 검사를 전달하지 않으면 수행해야 할 사항을 정의합니다. 이 절차의 실행은 수동 양식입니다. 전: checkall.informations.getItem (0). onexecute; |
| Witchmessage | 오류 메시지를 정의합니다. 메시지에 검증 된 값을 추가하려면 $ {value} 태그를 추가하십시오. 예 : isemail.withmessage ( 'email $ {value}가 유효하지 않음!') . output: E-mail null@@null está inválido! |
| 값에 대한 검증 | 유효성 검사 JSON (키/값) | 값에 대한 소독제 |
|---|---|---|
| CustomValue | (열쇠) | 커스터마이저 |
| 포함 | (키) isrequiven | normalizeeemail |
| 끝 | (값) CustomJsonValue | 만 감자 |
| Isalpha | (값) isjsjonnull | 제거 |
| Isalphanumeric | (가치) IsjsonBoolean | 바꾸다 |
| Isacii | (값) isjsonnumeric | Tobase64decode |
| isbase32 | (값) ISJSONSTRING | Tobase64encode |
| isbase58 | (값) 미네트 | 모두 |
| isbase64 | (가치) Maxites | 모든 시간 |
| isbetween | (값) + 값에 대한 검증 | tohtmldecode |
| Isboolean | tohtmlencode | |
| ISBTCADDRESS | Tointeger | |
| ISCNPJ | Tolowercase | |
| ISCPF | Tomd5 | |
| ISCPFCNPJ | Tonumeric | |
| ISDATE | TOTIME | |
| isdatebetween | touppercase | |
| isdatequals | TourlDecode | |
| ISDATEGRETETHAN | TourLencode | |
| isdatelesthan | 손질 | |
| ISDATETIME | Trimleft | |
| ISMAIL | Trimright | |
| ISMPTY | ||
| Isequals | ||
| isethereumaddress | ||
| Isgaterthan | ||
| isgtin | ||
| ISGTIN8 | ||
| ISGTIN12 | ||
| ISGTIN13 | ||
| ISGTIN14 | ||
| ishexadecimal | ||
| ishexcolor | ||
| Isinteger | ||
| ISIP | ||
| ISIPV4 | ||
| ISIPV6 | ||
| ISISO8601 | ||
| ISJSON | ||
| ISJSONARRAY | ||
| isjsonobject | ||
| ISJWT | ||
| Islatlong | ||
| 섬 길이 | ||
| islessshan | ||
| Islocale | ||
| Islowercase | ||
| ismacaddress | ||
| Ismagneturi | ||
| ISMD5 | ||
| ismimeType | ||
| 이모이드 | ||
| 불완전한 | ||
| isnumeric | ||
| isootal | ||
| 이소칼 | ||
| IspassportNumber | ||
| asphoneNumber | ||
| ISPORT | ||
| 양성 | ||
| ISPOSTALCODE | ||
| ISRGBCOLOR | ||
| ISSSN | ||
| ISTIME | ||
| istimebetween | ||
| istimeequals | ||
| istimegreatethan | ||
| istimelesthan | ||
| Isuppercase | ||
| Isurn | ||
| ISUUID | ||
| ISUUIDV1 | ||
| ISUUIDV2 | ||
| ISUUIDV3 | ||
| ISUUIDV4 | ||
| ISUUIDV5 | ||
| Iszero | ||
| regexismatch | ||
| 시작합니다 |