Last updated:
0 purchases
input validator
Input Validator #
Validate input value with an efficient way.
Installation #
Run this command:
flutter pub add input_validator
copied to clipboard
Usages #
The make method will return null if the validation passed.
/// import 'package:input_validator/input_validator.dart';
/// here is a basic example
InputValidator.make(rules:"required|min_length:6",value:"password");
copied to clipboard
Rules
rules parameter is a string that guide what to do with the value. You can provide as many as posable rules, which should be separated by | sign. Some rules required extra params like rule:param,param, here parameters are separated by comma. A quick example: you want to get user gender in male,female or other, so it would be like in:male,female,other. See Available Validation Rules and explanation.
Value
The value is the given payload for validation.
Customizing Validation Messages #
You can pass messages parameter to the make method. It accept Map<String, dynamic>. The messages key should match with rule name. The message value should be either String or CustomHandler.
Example:
InputValidator.make(
rules:"required|min_length:6",
value:null,
messages:{
"required": "Password is required."
},
);
copied to clipboard
Custom Rule #
Here is an example of custom rule.
/// A strong password validation,
/// Minimum 1 Upper case
/// Minimum 1 lowercase
/// Minimum 1 Numeric Number
/// Minimum 1 Special Character
/// Common Allow Character ( ! @ # $ & \* ~ )
InputValidator.make(
rules:"strongPassword",
value:null,
messages:{
"strongPassword": CustomHandler(onHandle: (payload, _) {
String pattern = r'^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[!@#\$&*~]).{8,}$';
RegExp regExp = new RegExp(pattern);
return regExp.hasMatch(payload) ? null:"Invalid password!";
})
},
);
copied to clipboard
Form builder #
Build form via form builder. See the full example on the example tab.
var _form = InputValidator.builder(
fields: {
"full_name": FieldData(rules: "required|min_length:4"),
"username": FieldData(rules: "required|min_length:4"),
"age": FieldData(rules: "required|min:10"),
},
);
Container(
child: _form.build(context, child: (state) => ....)
)
copied to clipboard
Available Validation Rules #
Below is a list of all available validation rules and their function:
Required,
Min (Number),
Max (Number),
Numeric (Number),
Size (Number),
Length (String),
Max Length (String),
Min Length (String),
Email,
In,
Date,
Date Between,
Date Before,
Date After,
Date Before Inclusive,
Date After Inclusive,
Custom Rule,
Required #
The field under validation must be present in the input data and not empty. A field is considered "empty" if one of the following conditions are true:
The value is null.
The value is an empty string.
copied to clipboard
Min #
The field under validation must have a minimum value and not empty and the value should be convertible to numeric value.
// example
InputValidator.make(value: "5", rules: "min:10");
// reuslt: Provide at least 10.
copied to clipboard
Max #
The field under validation must have a maximum value and not empty and the value should be convertible to numeric value.
// example
InputValidator.make(value: "15", rules: "max:10");
// reuslt: Maximum limit is 10.
copied to clipboard
Numeric #
The field under validation must be convertible to a numeric value.
// example
InputValidator.make(value: "abc", rules: "numeric");
// reuslt: Invalid number input.
copied to clipboard
Size #
The field under validation must be convertible to a numeric value and exec as the given size.
// example
InputValidator.make(value: "5", rules: "size:10");
// reuslt: The size should be 10.
copied to clipboard
Length #
It will call the toString() method on the value and check the length of the string and match with the given length.
// example
InputValidator.make(value: "5", rules: "length:10");
// reuslt: The input should be 10 characters.
copied to clipboard
Min Length #
It will call the toString() method on the value and check the length of the string and match with the given length.
// example
InputValidator.make(value: "5", rules: "min_length:10");
// reuslt: Provide at least 5 characters
copied to clipboard
Max Length #
It will call the toString() method on the value and check the length of the string and match with the given length.
// example
InputValidator.make(value: "15", rules: "max_length:10");
// reuslt: Provide maximum 10 characters
copied to clipboard
Email #
It will check with a RegEx pattern. You can customize the pattern by override the custom handler.
// example
InputValidator.make(value: "example@gmail", rules: "email");
// reuslt: Invalid email address.
copied to clipboard
In #
The field under validation must be included in the given list of values.
// example
InputValidator.make(value: "world", rules: "in:1,hello,world");
// reuslt: null
copied to clipboard
Date #
Valid date that could be parsed with DateTime.parse()
// example
InputValidator.make(value: "date", rules: "date");
// reuslt: Invalid date
copied to clipboard
Date Between #
Valid date that could be parsed with DateTime.parse(). It will make sure that the given date is newer then minimum date and older then maximum date.
// example 'date_between:min,max'
InputValidator.make(value: "2021-04-10", rules: "date_between:2021-05-17,2021-07-17");
// reuslt: Date out of range.
copied to clipboard
Date Before #
Valid date that could be parsed with DateTime.parse(). It will make sure that the given date is older then checking date. Also you can try Date Before Inclusive.
// example 'date_before:date'
InputValidator.make(value: "2021-04-10", rules: "date_between:2021-05-17");
// reuslt: null
copied to clipboard
Date After #
Valid date that could be parsed with DateTime.parse(). It will make sure that the given date is newer then checking date. Also you can try Date After Inclusive.
// example 'date_after:date'
InputValidator.make(value: "2021-04-10", rules: "date_after:2021-05-17");
// reuslt: Provide newer date.
copied to clipboard
Date After Inclusive #
Valid date that could be parsed with DateTime.parse(). It will make sure that the given date is newer or equal to the checking date.
// example 'date_after_inclusive:date'
InputValidator.make(value: "2021-05-17", rules: "date_after_inclusive:2021-05-17");
// reuslt: null
copied to clipboard
Date Before Inclusive #
Valid date that could be parsed with DateTime.parse(). It will make sure that the given date is older or equal to the checking date.
// example 'date_before_inclusive:date'
InputValidator.make(value: "2021-05-17", rules: "date_before_inclusive:2021-05-17");
// reuslt: null
copied to clipboard
License #
MIT
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.