You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter Dart中创建含大小写混合与数字的表单验证规则

Flutter密码验证规则(非正则if-else实现)

完全可以用你熟悉的if-else逻辑实现这些验证规则,不需要正则表达式。下面是符合需求的完整验证代码:

validator: (value) {
  // 检查输入是否为空
  if (value == null || value.isEmpty) {
    return '请填写密码';
  }
  // 检查密码长度是否达标
  if (value.length < 8) {
    return '密码长度不能少于8个字符';
  }
  // 检查是否包含大写字母
  bool hasUpperCase = value.any((char) => char.isUpperCase);
  // 检查是否包含小写字母
  bool hasLowerCase = value.any((char) => char.isLowerCase);
  // 检查是否包含数字
  bool hasNumber = value.any((char) => char.isDigit);

  // 验证混合大小写要求
  if (!hasUpperCase || !hasLowerCase) {
    return '密码必须同时包含大写和小写字母';
  }
  // 验证数字要求
  if (!hasNumber) {
    return '密码必须至少包含一个数字';
  }

  // 所有条件满足,验证通过
  return null;
}

代码逻辑说明

  • 空值/长度检查:和你之前的写法一致,先确保输入有效且长度达标
  • 字符类型检查:使用any()方法遍历字符串的每个字符,判断是否存在符合要求的字符:
    • char.isUpperCase:判断当前字符是否为大写字母
    • char.isLowerCase:判断当前字符是否为小写字母
    • char.isDigit:判断当前字符是否为数字
  • 规则验证:分别检查混合大小写、数字的要求,不满足时返回对应提示

测试结果匹配

  • Passwords1:长度达标,包含大写P、小写字母和数字1 → 验证通过
  • passwords1:缺少大写字母 → 返回「密码必须同时包含大写和小写字母」
  • passwordss:缺少数字 → 返回「密码必须至少包含一个数字」

内容的提问来源于stack exchange,提问作者Muhammad Faisal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 16:45:42