首页 > 解决方案 > 如何在 TextFormField 中验证电子邮件

问题描述

有一种方法可以使用 TextFormField或 验证用户TextField的输入,如果输入不是电子邮件,则拒绝输入。

标签: flutter

解决方案


您可以为此使用正则表达式

像这样的 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;
  }

推荐阅读