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

Static Methods

any(List<InputValidation> validations, {String? errorMsg}) String? Function(String?)
任一规则通过即可 / Pass if any rule passes
combine(List<InputValidation> validations) String? Function(String?)
组合多个校验规则 / Combine multiple validation rules