datavalidator
2.0.2

DataValidatorは、単純なデータ検証ライブラリになるように設計されています。
サポート:[email protected]
$ 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 :すべてのVALIDATEを確認し、すべてのメッセージをエラーで返します。
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.
消毒剤は価値の治療です。
例:Sanitizers MD5:検証値を取り、MD5に変換します
TDataValidator.Values
.Validate('APELIDO')
.ToMD5
.&End
| 名前 | 情報 |
|---|---|
| ない | このバリデーターを使用すると、バリデーターの結果が拒否されます。 例:検証( 'メール')。 &not.isempty 値を空にしてはならないことが理解されています。 |
| 走る | その検証が検証に合格しない場合、何を実行すべきかを定義します。この手順の実行は手動フォームです。 元: checkall.informations.getitem(0).onexecute; |
| 装備 | エラーメッセージを定義します。 検証済みの値をメッセージに追加するには、 $ {value}タグを追加します。 例: isemail.withmessage( '電子メール$ {value}は無効です!') 。 output: E-mail null@@null está inválido! |
| 値の検証 | 検証JSON(キー/値) | 値の消毒剤 |
|---|---|---|
| CustomValue | (鍵) | カスタマイザー |
| 含む | (key)isrequired | normalizeeemail |
| endswith | (値)CustomJSonValue | onlynumbers |
| イサルファ | (値)isjsjonnull | RemoveAcccents |
| ISALPHANUMERIC | (値)isjsonboolean | 交換する |
| isacii | (値)isjsonnumeric | tobase64decode |
| isbase32 | (値)isjsonstring | tobase64encode |
| isbase58 | (値)minemtes | 全て |
| ISBase64 | (値)マキシテス | すべて-ATETIME |
| ISBETGEEN | (値) +値の検証 | tohtmldecode |
| ISBOOLEAN | tohtmlencode | |
| isbtcaddress | tointeger | |
| ISCNPJ | Tolowercase | |
| ISCPF | tomd5 | |
| ISCPFCNPJ | tonumeric | |
| isdate | totime | |
| isDateBetGeen | Touppercase | |
| isdatequals | tourldecode | |
| isdategretethan | Tourlencode | |
| IsdateLesthan | トリム | |
| isdateTime | トリムレフト | |
| イスマイル | TRIMRIGHT | |
| ismpty | ||
| ISequals | ||
| ISETHEREUMADDRESS | ||
| Isgaterthan | ||
| ISGTIN | ||
| ISGTIN8 | ||
| ISGTIN12 | ||
| ISGTIN13 | ||
| ISGTIN14 | ||
| ishexadecimal | ||
| ishexcolor | ||
| Isinteger | ||
| ISIP | ||
| ISIPv4 | ||
| ISIPv6 | ||
| ISISO8601 | ||
| Isjson | ||
| IsjsonArray | ||
| isjsonobject | ||
| isjwt | ||
| Islatlong | ||
| Islength | ||
| islessthan | ||
| Islocale | ||
| ISLOWERCASE | ||
| IsmacAddress | ||
| Ismagneturi | ||
| ISMD5 | ||
| ISMIMETYPE | ||
| イスモンゴイド | ||
| 同性的です | ||
| isnumeric | ||
| iSOOTAL | ||
| isocal | ||
| ispassportnumber | ||
| IsphoneNumber | ||
| iSport | ||
| 一等 | ||
| ispostalcode | ||
| ISRGBCOLOR | ||
| ISSSN | ||
| ISTIME | ||
| istimebether | ||
| ISTIMEEQUALS | ||
| iStimegreatethan | ||
| IstimeLesthan | ||
| isuppercase | ||
| iSurn | ||
| isuuid | ||
| isuuidv1 | ||
| isuuidv2 | ||
| isuuidv3 | ||
| isuuidv4 | ||
| isuuidv5 | ||
| Iszero | ||
| 再遺伝子項 | ||
| Startswith |