Flutter Laravel Form Validation
A simplified dart extension based flutter form validation . Inspired by Laravel Validation.
🎖 Installing
dependencies:
flutter_laravel_form_validation : ^1.0.4
⚡️ Import
import 'package:flutter_laravel_form_validation/flutter_laravel_form_validation.dart';
🎮 How To Use
Validation rules in a list, short form without label or custom messages
TextFormField(
validator : ['required','max:10','uppercase'].v,
),
Validation rules in a list using the FLValidator class, short form without label or custom messages
TextFormField(
validator : [FLValidator.required,FLValidator.max(10),FLValidator.uppercase].v,
),
Custom validation in a list
TextFormField(
validator : [FLValidator.required,customValidation].v,
),
String? customValidation(String? value) {
if (value == "flutterdev") {
return "Value cannot be flutterdev";
}
return null;
}
Validation rules in a string, short form without label or custom messages
TextFormField(
validator : "required|max:10|uppercase".v,
),
Validation rules in a list with label or custom messages
TextFormField(
validator : ['required','max:10','uppercase',].validate(attribute: 'Username',
customMessages: {
'required': "You must input your username",
'max': "The length must be 10",
'uppercase': "Only uppercase is allowed"
},
),
Validation rules in a list with label or custom messages
TextFormField(
validator : "required|max:10|uppercase".validate(attribute: 'Username',
customMessages: {
'required': "You must input your username",
'max': "The length must be 10",
'uppercase': "Only uppercase is allowed"
},
),
Rules
| Class property |
String |
Description |
Example |
FLValidator.required |
required |
For making sure a form field value is required |
['required'] or 'required' or [FLValidator.required] |
FLValidator.numeric |
numeric |
For making sure a form field value is numeric |
['numeric'] or 'numeric' or [FLValidator.numeric] |
FLValidator.integer |
interger |
For making sure a form field value is an interger |
['interger'] or 'interger' or [FLValidator.interger] |
FLValidator.double |
double |
For making sure a form field value is a double |
['double'] or 'double' or [FLValidator.double] |
FLValidator.between(min,max) |
between(min,max) |
For making sure a form field value is between the of min and max |
['between:2,8'] or 'between(2,8)' or [FLValidator.between(2,8)] |
FLValidator.max(length) |
max:length |
For making sure a form field value length is limited to the max length |
['max:5'] or 'max:5' or [FLValidator.max(5) |
FLValidator.min(length) |
min:length |
For making sure a form field value length is limited to the min length |
['min:5'] or 'min:5' or [FLValidator.min(5)] |
FLValidator.gt(number) |
gt:number |
For making sure a form field value is greater than the number specified |
['gt:10'] or 'gt:10' or [FLValidator.gt(10)] |
FLValidator.lt(number) |
lt:number |
For making sure a form field value is less than the number specified |
['lt:10'] or 'lt:10' or [FLValidator.lt(10)] |
FLValidator.gte(number) |
gte:number |
For making sure a form field value is greater than or equal to the number specified |
['gte:10'] or 'gte:10' or [FLValidator.gte(10)] |
FLValidator.lte(number) |
lte:number |
For making sure a form field value is less than or equal to the number specified |
['lte:10'] or 'lte:10' or [FLValidator.lte(10)] |
FLValidator.uppercase |
uppercase |
For making sure a form field value is uppercase |
['uppercase'] or 'uppercase' or [FLValidator.uppercase] |
FLValidator.lowercase |
lowercase |
For making sure a form field value is lowercase |
['lowercase'] or 'lowercase' or [FLValidator.lowercase] |
FLValidator.startsWith(value) |
starts_with:value |
For making sure a form field value starts with the specified value |
['starts_with:man'] or 'starts_with:man' or [FLValidator.startsWith(man)] |
FLValidator.endsWith(value) |
ends_with:value |
For making sure a form field value ends with the specified value |
['ends_with:man'] or 'ends_with:man' or [FLValidator.endsWith(man)] |
FLValidator.same(other) |
same:other |
For making sure a form field value is same as other |
['same:other'] or 'same:other' or [FLValidator.same(other)] |
FLValidator.alphaNum |
alpha_num |
For making sure a form field value is alpha numeric |
['alpha_num'] or 'alpha_num' or [FLValidator.alphaNum] |
FLValidator.inItems(List items) |
in: |
For making sure a form field value exist in a list |
['in:he,she,it'] or 'in:he,she,it' or [FLValidator.inItems([he,she,it])] |
FLValidator.notInItems(List items) |
not_in: |
For making sure a form field value does exist in a list |
['not_in:he,she,it'] or 'not_in:he,she,it' or [FLValidator.notInItems([he,she,it])] |
FLValidator.regEx(pattern) |
regex:pattern |
For making sure a form field value match the specified regular expression pattern |
['regex:pattern'] or 'regex:pattern' or [FLValidator.regEx(pattern)] |
FLValidator.email |
email |
For making sure a form field value is an email |
['email'] or 'email' or [FLValidator.email] |
FLValidator.ip |
ip |
For making sure a form field value is an ip address |
['ip'].v or 'ip'.v or [FLValidator.ip].v |
FLValidator.url |
url |
For making sure a form field value is a url |
['url'].v or 'url'.v or [FLValidator.url].v |
Also, localization is a work in progress
🐛 Bugs/Requests
If you encounter any problems feel free to open an issue. If you feel the library is
missing a feature, please raise a ticket on Github and I'll look into it.
Pull request are also welcome.