如何在Dart中检查电子邮件是否有效|以Flutter为例

1,147 阅读1分钟

这个程序检查如何验证电子邮件地址。

Dart提供了一个RegExp 类,用于用正则表达式匹配字符串

以下是一个有效的电子邮件地址的规则:

  • 电子邮件有不同的有效部分 - 发件人姓名、@符号和域名
  • 收件人和域名可以包含小写和大写数字
  • 域名包含一个由点(.)分隔的扩展名
  • 发件人的名字中允许有特殊字符
  • 发件人名称的长度为64个字符
  • 域名是256个字符

有效的电子邮件是abc@ch.com ,无效的电子邮件是abcabc@abc

使用正则表达式进行Dart电子邮件验证

在这个程序中,使用正则表达式检查电子邮件验证。RegExp(regularexpression).hasMatch(emailString) 用正则表达式检查电子邮件字符串并返回bool值。

下面是一个程序的例子

void main() {
  print(isEmailValid("ababc.com")); // false
  print(isEmailValid("abc@abc.com")); // true
  print(isEmailValid("abc@abc")); // false
}

bool isEmailValid(String email) {
  return RegExp(
          r'^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$')
      .hasMatch(email);
}

输出

false
true
false

同样的,你可以为字符串类添加dart扩展,扩展是为现有的库添加新的功能。

写一个扩展程序来验证电子邮件字符串的例子

void main() {
  print("ababc.com".isEmailValid()); // false
  print("abc@abc.com".isEmailValid()); // true
  print("abc@abc".isEmailValid()); // false
}

extension EmailValidation on String {
  bool isEmailValid() {
    return RegExp(
            r'^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$')
        .hasMatch(this);
  }
}

总结

综上所述,学会了如何在dart和flutter中检查电子邮件是否有效。