有人可以告诉我如何 在电子邮件地址中添加“空格”检查?一世 尝试过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
答案 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())