datavalidator
2.0.2

DataValidator предназначен для простой библиотеки проверки данных.
Поддержка: [email protected]
$ boss install github.com/dliocode/datavalidatorДобавьте следующие папки в свой проект, в проекте> Параметры> Delphi Compiler> Поиск
../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
| Имя | Информация |
|---|---|
| Нет | При использовании этого валидатора он отрицает результат валидатора. Пример: Validate ('email'). И нет Понятно, что значение не должно быть пустым. |
| Бегать | Определяет, что следует выполнить, если эта проверка не проходит проверку. Выполнение этой процедуры является ручной формой. Бывший: Checkall.informations.getItem (0) .onexecute; |
| Смеситель | Определяет сообщение об ошибке. Чтобы добавить подтвержденное значение в сообщение, просто добавьте тег $ {value} . Пример: isemail.withmessage ('email $ {value} недействителен!') . output: E-mail null@@null está inválido! |
| Валидация для значений | Валидация json (ключ/значение) | Дезинфицирующие средства для ценностей |
|---|---|---|
| CustomValue | (Ключ) | Настройщик |
| Содержит | (Ключ) Isrequired | Namorizeeemail |
| EndWith | (Значение) CustomJsonValue | Только ручки |
| Исальфа | (Значение) isjsjonnull | Удаление |
| Исальфанумерный | (Значение) ISJSONBOOLEAN | Заменять |
| Исации | (Значение) isjsonnumeric | Tobase64decode |
| ISBASE32 | (Значение) ISJSonstring | Tobase64encode |
| ISBASE58 | (Значение) Minemtes | Все |
| ISBASE64 | (Значение) Макситс | Все -то |
| Iswewne | (Значение) + валидация для значений | Tohtmldecode |
| Isboolean | Tohtmlencode | |
| ISBTCADDRESS | Tointeger | |
| Iscnpj | TOLOWERCASE | |
| ISCPF | Tomd5 | |
| Iscpfcnpj | Тонуферный | |
| Ийдат | Тотальный | |
| Isdateweed | Touppercase | |
| Isdatequals | Tourldecode | |
| Isdategretethan | Tourlencode | |
| ИСДАТЕЛЕАН | Подрезать | |
| IsDateTime | Тридлефт | |
| Исмаил | Trimright | |
| Ismpty | ||
| Isecals | ||
| Isethereumaddress | ||
| Игатерхан | ||
| ISGTIN | ||
| Isgtin8 | ||
| ISGTIN12 | ||
| ISGTIN13 | ||
| ISGTIN14 | ||
| Ишадецимальный | ||
| Ishexcolor | ||
| Isinteger | ||
| Исип | ||
| Isipv4 | ||
| Isipv6 | ||
| ISISO8601 | ||
| ISJSON | ||
| Isjsonarray | ||
| IsjsonObject | ||
| Isjwt | ||
| Islatlong | ||
| Islength | ||
| Islessthan | ||
| Islocale | ||
| IslowerCase | ||
| Ismacaddress | ||
| Ismagneturi | ||
| ISMD5 | ||
| ISMIMETYPE | ||
| Имонгоид | ||
| Негативен | ||
| ISNUMERY | ||
| Isootal | ||
| Изокальный | ||
| Ispassportnumber | ||
| IsphoneNumber | ||
| ISPORT | ||
| Ispositive | ||
| ISPOSTALCODE | ||
| ISRGBCOLOR | ||
| Isssn | ||
| Istime | ||
| Istimeweed | ||
| ISTIMEQUALS | ||
| Istimegreatethan | ||
| Istimelesthan | ||
| Isuppercase | ||
| Isurn | ||
| Isuuid | ||
| Isuuidv1 | ||
| Isuuidv2 | ||
| Isuuidv3 | ||
| Isuuidv4 | ||
| Isuuidv5 | ||
| ISZERO | ||
| Резексизм | ||
| StartSwith |