flutter - 如何在 TextFormField 中验证电子邮件
问题描述
有一种方法可以使用 TextFormField
或 验证用户TextField
的输入,如果输入不是电子邮件,则拒绝输入。
解决方案
您可以为此使用正则表达式
像这样的 Form 和 TextFormField
Form(
autovalidateMode: AutovalidateMode.always,
child: TextFormField(
validator: (value) => validateEmail(value),
),
)
然后是验证功能
String validateEmail(String? value) {
String pattern =
r"^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]"
r"{0,253}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]"
r"{0,253}[a-zA-Z0-9])?)*$";
RegExp regex = RegExp(pattern);
if (value == null || value.isEmpty || !regex.hasMatch(value))
return 'Enter a valid email address';
else
return null;
}
推荐阅读
- popup - 当我们单击按钮时,如何在服务中弹出屏幕?
- ios - 在 iOS 组合布局部分中删除一个组单元格的 interGroupSpacing
- python - 是否有类似于 awsglue 的 getResolvedOptions 的函数可以在使用 python 的 azure databricks 笔记本中工作?
- python-requests - Python aiohttp 在请求工作正常时返回 500 错误
- python - Docker 映像构建在本地工作,但在 gitlab 管道中失败
- procedure - 通过存储在变量中的表达式定义函数运算符的“结果”不起作用
- python - 在 terraform 中使用环境变量的 Python 脚本
- jitpack - JitPack 如何处理子目录?
- terraform - Terraform 错误:引用 GCP 中未声明的资源
- image-processing - 使用代码生成大量 3d 建模手