datavalidator
2.0.2

تم تصميم DataValidator ليكون مكتبة التحقق من صحة البيانات البسيطة.
الدعم: مطور [email protected]
$ boss install github.com/dliocode/datavalidatorأضف المجلدات التالية إلى مشروعك ، في Project> Options> Delphi Compiler> Search Path
../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: خذ قيمة التحقق وتحويلها إلى MD5
TDataValidator.Values
.Validate('APELIDO')
.ToMD5
.&End
| اسم | معلومة |
|---|---|
| لا | عند استخدام هذا المدقق ، فإنه يرفض نتيجة التحقق. على سبيل المثال: التحقق من صحة ("البريد الإلكتروني"). & not.isempty من المفهوم أن القيمة يجب ألا تكون فارغة. |
| يجري | يحدد ما يجب تنفيذه إذا لم يمر التحقق من صحة. تنفيذ هذا الإجراء هو الشكل اليدوي. السابق: checkall.informations.getItem (0). Onexecute ؛ |
| withmessage | يحدد رسالة الخطأ. لإضافة القيمة التي تم التحقق منها إلى الرسالة ، ما عليك سوى إضافة علامة $ {value} . على سبيل المثال: isemail.withmessage ('البريد الإلكتروني $ {value} غير صالح!') . output: E-mail null@@null está inválido! |
| التحقق من صحة القيم | التحقق من صحة JSON (المفتاح/القيمة) | المطهرات للقيم |
|---|---|---|
| CustomValue | (مفتاح) | مخصص |
| يتضمن | (مفتاح) isRequired | NormalizeeMail |
| endswith | (قيمة) CustomJsonValue | فقط |
| Isalpha | (قيمة) isjsjonnull | إزالة |
| Isalphanumeric | (قيمة) isjsonboolean | يستبدل |
| isacii | (قيمة) isjsonnumeric | Tobase64Decode |
| ISBase32 | (قيمة) isjsonstring | Tobase64encode |
| ISBase58 | (قيمة) minemtes | الجميع |
| ISBase64 | (قيمة) ماكسسيت | كل ما في الوقت |
| isbetween | (القيمة) + التحقق من الصحة للقيم | tohtmldecode |
| Isboolean | tohtmlencode | |
| ISBTCADDRESS | تورتيجر | |
| ISCNPJ | tolowercase | |
| ISCPF | TOMD5 | |
| ISCPFCNPJ | طن | |
| isdate | تطفو | |
| isDatebetween | Touppercase | |
| isDatequals | الرمز الجريلي | |
| Isdategretethan | Tourlencode | |
| Isdatelesthan | تقليم | |
| isDateTime | Trimleft | |
| إسماعيل | القطع | |
| ismpty | ||
| isequals | ||
| isethereumaddress | ||
| Isgaterthan | ||
| isgtin | ||
| isgtin8 | ||
| isgtin12 | ||
| isgtin13 | ||
| isgtin14 | ||
| Ishexadecimal | ||
| Ishexcolor | ||
| isinteger | ||
| ISSIP | ||
| ISIPv4 | ||
| ISIPv6 | ||
| ISISO8601 | ||
| إيسجسون | ||
| Isjsonarray | ||
| isjsonoBject | ||
| isjwt | ||
| Islatlong | ||
| islength | ||
| islesssthan | ||
| Islocale | ||
| islowercase | ||
| Ismacaddress | ||
| Ismagneturi | ||
| ISMD5 | ||
| Ismimetype | ||
| إسمونغويد | ||
| isnegative | ||
| isnumeric | ||
| Isootal | ||
| isocal | ||
| isPassportNumber | ||
| Isphonenber | ||
| isport | ||
| Ispositive | ||
| ispostalcode | ||
| ISRGBColor | ||
| ISSSN | ||
| isTime | ||
| isTimeBetween | ||
| istimeequals | ||
| isTimegreatethan | ||
| IstimeLesthan | ||
| isuppercase | ||
| isurn | ||
| isuuid | ||
| isuuidv1 | ||
| isuuidv2 | ||
| isuuidv3 | ||
| isuuidv4 | ||
| isuuidv5 | ||
| ايزرو | ||
| regeismatch | ||
| Startswith |