flutter_laravel_form_validation 1.0.4 
flutter_laravel_form_validation: ^1.0.4 copied to clipboard
A simplified dart extension based flutter form validation . Inspired by Laravel Validation.
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 | 
            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.