我有一个简单的问题,那就是如何检查是否存在电子邮件
我在最近的帖子中看到过这段代码:
- (BOOL) NSStringIsValidEmail:(NSString *)checkString{
BOOL stricterFilter = YES;
NSString *stricterFilterString = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSString *laxString = @".+@.+\\.[A-Za-z]{2}[A-Za-z]*";
NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:checkString];
}
我的问题是,如果BOOL返回YES或NO NSTextField
,我该如何返回一个动作?
答案 0 :(得分:1)
如果电子邮件是否正确,只需标签并将标签文本设置为适当的消息。
每次用户通过实施以下UITextFieldDelegate
协议方法在文本字段中键入新字符时,您都可以运行检查例程:
- (BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string {
NSString *newText = [textField.text stringByAppendingString:string];
if ([self NSStringIsValidEmail:newText]) {
statusLabel.text = @"Valid.";
} else {
statusLabel.text = @"Not a valid email address.";
}
return YES;
}