我使用以下代码检查在uitextfield中输入的电子邮件的验证。但是当我输入abcd@m.com.com时它返回true,它没有返回false。
NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:email];
任何人都可以建议我吗?
答案 0 :(得分:1)
ios代码的电子邮件验证。
- (BOOL)validateEmailWithString:(NSString*)email
{
NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:email];
}
Textfield委托
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
if ([self validateEmailWithString:textField.text])
{
Nslog(@"Valid");
}
else
{
Nslog(@"Not Valid");
}
}
答案 1 :(得分:1)
不要排除域m.com.com
,因为它是com.com
的可能子域(可能看起来很奇怪,但是有效的 - 而且是真实域名)。
如果您仍想要排除所有子域名(说:.
后只允许一个@
),则会排除以下电子邮件地址:
所以,你可能不想排除它们。