有没有办法让文字字段输入必须是电子邮件?(在xcode中)

inV*_*ble 10 mysql iphone xcode objective-c ios4

我想创建一个用户登录表单,它需要使用电子邮件而不仅仅是用户名.如果它不是电子邮件,我有什么方法可以弹出警报吗?顺便说一句所有这些都是在xcode中.

aka*_*kyy 40

有一种方法可以使用NSPredicate正则表达式:

- (BOOL)validateEmail:(NSString *)emailStr {
    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:emailStr];
}
Run Code Online (Sandbox Code Playgroud)

然后,如果电子邮件地址错误,您可以显示警告:

- (void)checkEmailAndDisplayAlert {
    if(![self validateEmail:[aTextField text]]) {
        // user entered invalid email address
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Enter a valid email address." delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
        [alert show];
        [alert release];
    } else {
        // user entered valid email address
    }
}
Run Code Online (Sandbox Code Playgroud)