InputValidation class
author:郑再红 email:1096877329@qq.com date: 2023/2/1 time: 17:52 describe: 输入框基础校验器,内置校验不满足时可继承该类或仿写校验规则
功能特性 / Features
- ✅ 必填校验 / Required validation
- 📏 长度范围校验 / Length range validation
- 🔤 正则表达式校验 / RegExp validation
- 📧 内置常用格式校验 / Built-in format validation (email, phone, url, etc.)
- 🔗 多规则组合校验 / Multiple rules validation
- 🌐 自定义错误消息 / Custom error messages
- 🎯 条件校验 / Conditional validation
基础示例 / Basic Example
InputText(
enableForm: true,
controller: TextEditingController(),
validator: const InputValidation(
mustFill: true,
minLength: 6,
maxLength: 12,
errorMsg: "密码长度为6-12位",
).validate,
)
正则表达式示例 / RegExp Example
InputText(
enableForm: true,
controller: TextEditingController(),
validator: InputValidation.email(
errorMsg: "请输入正确的邮箱地址",
).validate,
)
多规则组合 / Multiple Rules
InputText(
enableForm: true,
controller: TextEditingController(),
validator: InputValidation.combine([
const InputValidation(mustFill: true, emptyTip: "不能为空"),
InputValidation.minLength(6, errorMsg: "至少6个字符"),
InputValidation.maxLength(20, errorMsg: "最多20个字符"),
]),
)
Constructors
- InputValidation({bool? mustFill = true, int? minLength, int? maxLength, RegExp? regExp, String? errorMsg, String? format, String? emptyTip = "输入不能为空", List? formatValues = const [], String? customValidator(String?)?, bool condition()?})
-
const
- InputValidation.chinese({String? errorMsg, String? emptyTip, bool mustFill = true})
-
中文校验 / Chinese characters validation
factory
- InputValidation.conditional({required bool condition(), required InputValidation validation})
-
条件校验 / Conditional validation
factory
- InputValidation.custom({required String? validator(String?), bool mustFill = false, String? emptyTip})
-
自定义校验 / Custom validation
factory
- InputValidation.email({String? errorMsg, String? emptyTip, bool mustFill = true})
-
邮箱校验 / Email validation
factory
- InputValidation.idCard({String? errorMsg, String? emptyTip, bool mustFill = true})
-
身份证号校验(中国大陆)/ Chinese ID card validation
factory
- InputValidation.maxLength(int length, {String? errorMsg, bool mustFill = false})
-
最大长度校验 / Maximum length validation
factory
- InputValidation.minLength(int length, {String? errorMsg, bool mustFill = false})
-
最小长度校验 / Minimum length validation
factory
- InputValidation.number({String? errorMsg, String? emptyTip, bool mustFill = true, bool allowDecimal = true, bool allowNegative = true})
-
数字校验 / Number validation
factory
- InputValidation.numberRange({required num min, required num max, String? errorMsg, String? emptyTip, bool mustFill = true})
-
数字范围校验 / Number range validation
factory
- InputValidation.phone({String? errorMsg, String? emptyTip, bool mustFill = true})
-
手机号校验(中国大陆)/ Chinese phone number validation
factory
- InputValidation.strongPassword({String? errorMsg, String? emptyTip, bool mustFill = true, int minLength = 8})
-
密码强度校验 / Password strength validation
factory
- InputValidation.url({String? errorMsg, String? emptyTip, bool mustFill = true})
-
URL 校验 / URL validation
factory
- InputValidation.username({String? errorMsg, String? emptyTip, bool mustFill = true, int minLength = 4, int maxLength = 20})
-
用户名校验 / Username validation
factory
Properties
- condition → bool Function()?
-
条件校验:只有当此函数返回 true 时才执行校验 / Conditional validation
final
- customValidator → String? Function(String?)?
-
自定义校验函数 / Custom validation function
final
- emptyTip → String?
-
final
- errorMsg → String?
-
final
- format → String?
-
final
- formatValues → List?
-
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- maxLength → int?
-
final
- minLength → int?
-
final
- mustFill → bool?
-
final
- regExp → RegExp?
-
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
validate(
String? value) → String?
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited