这个程序检查如何验证电子邮件地址。
Dart提供了一个RegExp 类,用于用正则表达式匹配字符串
以下是一个有效的电子邮件地址的规则:
- 电子邮件有不同的有效部分 - 发件人姓名、@符号和域名
- 收件人和域名可以包含小写和大写数字
- 域名包含一个由点(.)分隔的扩展名
- 发件人的名字中允许有特殊字符
- 发件人名称的长度为64个字符
- 域名是256个字符
有效的电子邮件是abc@ch.com ,无效的电子邮件是abc ,abc@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中检查电子邮件是否有效。