- Notifications
You must be signed in to change notification settings - Fork8
validation form inputs in Dart & Flutter
License
novaday-co/inspection
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
WithInspection you can validate your inputs inFlutter &Dart likeLaravel Framework.
Add this to your package's pubspec.yaml file:
dependencies:inspection:^0.0.14
Then You can install packages from the command line:
$ pub get
or
$ flutter pub get
Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import'package:inspection/inspection.dart';
You have a form , you want to validate inputs everyday in programming . WithInspection you can validate your inputs inDart likeLaravel Framework . See examples below .
You expect a required number with many conditions and rules :In this case , we get help fromInspection helper function .
TextFormField( validator: (input)=>inspection(input,'required|numeric|between:2000,6000|contains:22,33,55|ends_with:0'), ),
You can useInspection class :
TextFormField( validator: (input)=>Inspection().inspect(input,'required|float'), ),
And you can use helper function andInspection class withList of rules , so you can make a global validation configuration List and you can change your rules in whole of the application whenever you want.
TextFormField( validator: (input)=>inspection(input, ['required','float']), ),
or
TextFormField( validator: (input)=>inspect(input, ['required','float']), ),
You can set attributename , custommessage andlocale . For example :
TextFormField( validator: (input)=>inspect(input,'required|float',message:'my custom message here !'), ),
Rule | Description | Example |
---|---|---|
iran_national_code | Input must be a iranian national code | inspect(input,'iran_national_code') |
have_alpha | The attribute must have alpha in it | inspect(input,'have_alpha') |
alpha_num | The attribute must contains only letters and numbers | inspect(input,'alpha_num') |
between | The attribute must be between :min and :max | inspect(input,'between:3,9') |
contains | The attribute must contains one of your worlds | inspect(input,'contains:farid,farhad') |
The attribute must be a valid email | inspect(input,'email') | |
ends_with | The attribute must ends with your pattern | inspect(input,'ends_with:bye') |
gt | The attribute must grater than :gt | inspect(input,'gt:10') |
gte | The attribute must grater than or equal to :gte | inspect(input,'gte:10') |
hex | The attribute must be a valid hex code | inspect(input,'hex') |
in | The attribute must be one of options in your list | inspect(input,'in:farid,farhad,john') |
ip | The attribute must be a valid IP | inspect(input,'ip') |
lt | The attribute must be less than :lt | inspect(input,'lt:100') |
lte | The attribute must be less than or equal to :lte | inspect(input,'lte:100') |
max | The attribute must have maximum :max character | inspect(input,'max:10') |
min | The attribute must have at least :min character | inspect(input,'min:3') |
not_in | The attribute must not exists in list :not_in | inspect(input,'not_in:saman,ahmad') |
numeric | The attribute must be a number | inspect(input,'numeric') |
alpha | The attribute must contains only letters | inspect(input,'alpha') |
float | The attribute must be float | inspect(input,'float') |
integer | The attribute must be integer | inspect(input,'integer') |
number | The attribute must contains only number | inspect(input,'number') |
regex | The attribute must match with regex | inspect(input,'regex:^[a-zA-Z0-9]') |
required | The attribute field is required | inspect(input,'required') |
starts_with | The attribute must starts with your pattern | inspect(input,'starts_with:hi') |
url | The attribute must be a valid url | inspect(input,'url') |
Inspection supports two languages now .English with code :en , andPersian with codefa andVietnamese with codevi. You can set locale when initializeinspection or in optional parameter ofinspect method. For example :
TextFormField( validator: (input)=>Inspection(inspectionLocale:'fa').inspect(input,'required|in:farid,farhad'), ),
or
TextFormField( validator: (input)=>Inspection().inspect(input,'required|in:farid,farhad',locale:'fa'), ),
You can simply extend fromInspection class and develop your custom rule . For example :
classCustomInspectionextendsInspection {StringmyCustomRule(ruleString, inspectionCase) {switch (ruleString) {case'myCustomRule':// Your conditional codes here or copy from a Rule class and change it to your own .returnMyCustomeRuleClass(inspectionCase).stringValidation(); }returnnull; }}
You can help me and contribute for :
- New rules
- More locales
- Better exceptions