Flutter如何校验邮箱格式

在Flutter中如何校验用户输入的邮箱格式是否合法?有没有现成的正则表达式或者第三方库可以直接使用?最好能提供一个完整的示例代码,包括基本的格式检查和错误提示处理。谢谢!

2 回复

Flutter中校验邮箱格式可使用正则表达式。例如:

bool isEmailValid(String email) {
  final regex = RegExp(r'^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$');
  return regex.hasMatch(email);
}

调用此函数即可验证邮箱格式是否正确。

更多关于Flutter如何校验邮箱格式的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中校验邮箱格式,推荐使用正则表达式进行验证。以下是完整的实现方法:

方法一:使用正则表达式验证

bool isValidEmail(String email) {
  // 邮箱正则表达式
  final emailRegex = RegExp(
    r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
  );
  return emailRegex.hasMatch(email);
}

方法二:更严格的邮箱验证

bool isValidEmailStrict(String email) {
  final emailRegex = RegExp(
    r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+"
  );
  return emailRegex.hasMatch(email);
}

使用示例

// 在文本字段验证中使用
TextFormField(
  decoration: InputDecoration(labelText: '邮箱'),
  validator: (value) {
    if (value == null || value.isEmpty) {
      return '请输入邮箱地址';
    }
    if (!isValidEmail(value)) {
      return '请输入有效的邮箱地址';
    }
    return null;
  },
)

// 直接调用验证
void checkEmail() {
  String email = 'user@example.com';
  if (isValidEmail(email)) {
    print('邮箱格式正确');
  } else {
    print('邮箱格式错误');
  }
}

主要验证规则

  • 包含本地部分(@前)和域名部分(@后)
  • 域名部分必须包含点号分隔
  • 支持常见字符:字母、数字、点号、下划线等
  • 顶级域名至少2个字符

这种方法简单有效,能满足大多数邮箱格式验证需求。

回到顶部