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