首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >即使电子邮件地址正确,电子邮件验证在颤振显示信息中也不起作用。

即使电子邮件地址正确,电子邮件验证在颤振显示信息中也不起作用。
EN

Stack Overflow用户
提问于 2020-01-08 12:45:01
回答 4查看 6.5K关注 0票数 1

在此代码中,空电子邮件验证工作,但电子邮件类型验证不起作用。如果插入有效的电子邮件地址,电子邮件类型验证仍然显示“无效电子邮件”消息。

代码语言:javascript
运行
复制
new TextFormField(
      decoration: new InputDecoration(
        labelText: 'Email'
      ),
      validator: (value){
        if (value.isEmpty) {
          return 'Email is required';
        }
        if(!value.contains(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,}))$')){
          return 'Invalid Email';
        }
        return null;
      },
    )

可能出错的一行是:

代码语言:javascript
运行
复制
if(!value.contains(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,}))$'))
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-01-08 14:01:58

您可以使用hasMatchRegExp方法匹配正则表达式。

尝尝这个

代码语言:javascript
运行
复制
   Pattern pattern = 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,}))$';
   RegExp regex = new RegExp(pattern);
   if (!(regex.hasMatch(value)))
      return "Invalid Email";

如果要使用.contains of String,可以将RegExp对象作为参数传递。

代码语言:javascript
运行
复制
if (!(value.contains(regex)))
     return "Invalid Email";
票数 7
EN

Stack Overflow用户

发布于 2020-10-19 08:50:17

您可以使用来自pub.devpub.dev包来验证您的电子邮件地址。

将依赖项添加到pubspec.yaml文件中

代码语言:javascript
运行
复制
dependencies:
   email_validator: ^1.0.6

email_validator导入.dart文件

代码语言:javascript
运行
复制
import 'package:email_validator/email_validator.dart';

检查表单验证

代码语言:javascript
运行
复制
        Form(
              autovalidate: true,
               child :  TextFormField(
                    keyboardType: TextInputType.emailAddress,
                    decoration: InputDecoration(
                      hintText: ("email"),
                    ),
                    validator: (value) {
                      if (!EmailValidator.validate(value)) {
                        return 'Please enter a valid email';
                      }
                    },
                  ),
                )
票数 1
EN

Stack Overflow用户

发布于 2021-08-05 13:30:07

您可以简单地使用这个RegExp

代码语言:javascript
运行
复制
validator: (input){
                           bool emailValid = RegExp(r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+").hasMatch(input ?? "");
                            if(emailValid == true)
                            {
                              return null;
                            }
                            else
                            {
                              return "Email id should be valid";
                            }
                           
                           },
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59646163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档