datavalidator
2.0.2

DataValidator設計為簡單的數據驗證庫。
$ boss install github.com/dliocode/datavalidator在項目>選項> Delphi編譯器>搜索路徑中添加以下文件夾
../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)它僅返回每個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.
消毒劑是對價值的處理。
示例:消毒劑MD5:乘坐驗證值並轉換為MD5
TDataValidator.Values
.Validate('APELIDO')
.ToMD5
.&End
| 姓名 | 資訊 |
|---|---|
| 不是 | 使用此驗證器時,它會拒絕驗證器結果。 例如:驗證(“電子郵件”)。 &not.sempty 據了解,該值不應為空。 |
| 跑步 | 定義如果該驗證不通過驗證,應執行的操作。此過程的執行是手動形式。 前任: checkall.informations.getItem(0).onexecute; |
| 使用 | 定義錯誤消息。 要將驗證的值添加到消息中,只需添加$ {value}標籤即可。 例如: isemail.withMessage('電子郵件$ {value}無效!') 。 output: E-mail null@@null está inválido! |
| 驗證值 | 驗證JSON(鍵/值) | 價值的消毒劑 |
|---|---|---|
| CustomValue | (鑰匙) | 定制器 |
| 包含 | (鑰匙)ISEREQUIRD | 正常郵件 |
| 末日 | (值)CustomJsonValue | 只有名字 |
| 伊斯帕 | (value)isjsjonnull | 刪除 |
| 異腦數 | (值)Isjsonboolean | 代替 |
| isacii | (value)iSjsonnumeric | TOBASE64DECODE |
| ISBASE32 | (value)ISJSustring | tobase64encode |
| ISBASE58 | (價值)Minemtes | 全部 |
| ISBASE64 | (值)最大值 | 全部 |
| 之間 | (值) +值驗證 | tohtmldecode |
| Isboolean | tohtmlencode | |
| ISBTCADDRESS | Tointeger | |
| iscnpj | tolowercase | |
| ISCPF | tomd5 | |
| ISCPFCNPJ | 腫瘤 | |
| ISDATE | time | |
| 之間 | touppercase | |
| ISDATEQUALS | Tourldecode | |
| isdategretethan | Tourlencode | |
| Isdatelesthan | 修剪 | |
| iSdateTime | trimleft | |
| ismail | 特里奇 | |
| Ismpty | ||
| quesquals | ||
| Isethereumaddress | ||
| isgaterthan | ||
| isgtin | ||
| isgtin8 | ||
| ISGTIN12 | ||
| ISGTIN13 | ||
| ISGTIN14 | ||
| ishexadecimal | ||
| ishexcolor | ||
| Isinteger | ||
| ISIP | ||
| ISIPV4 | ||
| ISIPV6 | ||
| ISISO8601 | ||
| ISJSON | ||
| Isjsonarray | ||
| isjsonObject | ||
| ISJWT | ||
| 伊斯蘭 | ||
| islength | ||
| Islessthan | ||
| islocale | ||
| 等級 | ||
| ismacaddress | ||
| ismagneturi | ||
| ISMD5 | ||
| ISMIMETYPE | ||
| ismongoid | ||
| 靜止 | ||
| 數字 | ||
| Isootal | ||
| 異類 | ||
| ispassportnumber | ||
| iSphoneNumber | ||
| ISPORT | ||
| 等值 | ||
| IspostalCode | ||
| isrgbcolor | ||
| ISSSN | ||
| 是時間 | ||
| Istimebeteween | ||
| 是TimeEquals | ||
| ISTimeGreatethan | ||
| Istimelesthan | ||
| ISHOPERCASE | ||
| 伊恩 | ||
| ISUUID | ||
| ISUUIDV1 | ||
| ISUUIDV2 | ||
| ISUUIDV3 | ||
| ISUUIDV4 | ||
| ISUUIDV5 | ||
| ISZERO | ||
| Regexismatch | ||
| Startswith |