在电子邮件地址中添加“空格”检查

时间:2019-05-16 07:10:33

标签: dart flutter programming-languages

有人可以告诉我如何 在电子邮件地址中添加“空格”检查?一世 尝试过email.contains(“”)bt,它没有 工作。

I don't get a error when i type invalid email

select department_id,count(*) as number_of_orders,
sum(case when reordered=0 then 1 else 0 end) as number_of_reordered_0
from tabl_name
group by department_id

I want "invalid email" error to be displayed as this

6 个答案:

答案 0 :(得分:1)

您遇到的错误是验证电子邮件的顺序。您应该先检查空格,然后再检查@字符。

handleData: (email, sink){
      if(email.contains(" ")){
          sink.addError('Enter a valid email');
      } else if(email.contains('@')){
        sink.add(email);
      } else{
          sink.addError('Enter a valid email');

      }
    }

答案 1 :(得分:1)

您还可以使用Regular Expression来验证电子邮件地址。尽管regular expressions理解起来有些复杂,但是它们对于验证字符串和检查模式非常有用。这是一个RegEx的示例,用于在Flutter / Dart中验证电子邮件地址

// String p to define pattern
String p = "[a-zA-Z0-9\+\.\_\%\-\+]{1,256}" +
            "\\@" +
            "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
            "(" +
            "\\." +
            "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
            ")+";
            //Convert string p to a RegEx
            RegExp regExp = new RegExp(p);
            //If email address matches pattern
            if (regExp.hasMatch(emailAddress)) {
              return 'Email is Valid';
            }else{ //If it doesn't match
              return 'Email is not valid';
            }

答案 2 :(得分:0)

包含对我来说完美的东西。

void main() {
  bool check;
  String email = 'tes t@test.com';

  check = email.contains(' ');

  print(check); // true
}

我已经在DartPad上尝试过

也许您忘记在引号之间添加空格。

答案 3 :(得分:0)

可以通过reg完成。表达。您可以使用以下方法来匹配电子邮件。

String validateEmail(String value) {
        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 (value.isEmpty) {
          return 'Please enter email address';
        } else {
          if (!regex.hasMatch(value))
            return 'Enter Valid Email';
          else
            return null;
        }
      }

答案 4 :(得分:0)

请不要使用手动输入的正则表达式来验证电子邮件地址。首先,只要正确引用电子邮件地址,实际上就允许在空格中使用,因此原始问题已经存在问题。另外,这些正则表达式都会拒绝许多完全有效的电子邮件地址,例如我在fred&barney@stonehenge.com处的自动回复。 (继续...发送电子邮件!)

如果您要验证电子邮件,请使用https://pub.dev/packages/email_validator,我已确认遵循正确的规则。

答案 5 :(得分:0)

最简单的解决方案是在传递电子邮件值之前先调用trim()。像这样:

new AuthenticationService()
                  .signIn(_emailTextController.value.text.trim(),
                      _passwordTextController.value.text.trim())