即使电子邮件地址正确,电子邮件验证也无法在颤振显示消息中工作

Hit*_*thi 1 regex email validation flutter

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

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;
      },
    )
Run Code Online (Sandbox Code Playgroud)

可能错误的行是:

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,}))$'))
Run Code Online (Sandbox Code Playgroud)

Ayu*_*ani 7

您可以使用hasMatch以下方法匹配正则表达式RegExp

尝试这个

   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";
Run Code Online (Sandbox Code Playgroud)

如果你想使用.containsString可以传递一个RegExp对象作为参数

if (!(value.contains(regex)))
     return "Invalid Email";
Run Code Online (Sandbox Code Playgroud)