Я сделал что-то подобное в своем приложении, где я проверил, что поле адреса электронной почты состоит из 2 частей, разделенных символом «@», и по крайней мере 2 части, разделенных символом «.» условное обозначение. Это не проверяет, является ли это действительным адресом электронной почты, но, по крайней мере, проверяет, чтобы он был в правильном формате. Пример кода:
// to validate email address, just checks for @ and . separators
NSArray *validateAtSymbol = [[emailRegisterTextField text] componentsSeparatedByString:@"@"];
NSArray *validateDotSymbol = [[emailRegisterTextField text] componentsSeparatedByString:@"."];
// checks to make sure entries are good (email valid, username available, passwords enough chars, passwords match
if ([passwordRegisterTextField text].length >= 8 &&
[passwordRegisterTextField text].length > 0 &&
[[passwordRegisterTextField text] isEqual:[passwordVerifyRegisterTextField text]] &&
![currentUser.userExist boolValue] &&
![[emailRegisterTextField text] isEqualToString:@""] &&
([validateAtSymbol count] == 2) &&
([validateDotSymbol count] >= 2)) {
// get user input
NSString *inputEmail = [emailRegisterTextField text];
NSString *inputUsername = [userNameRegisterTextField text];
NSString *inputPassword = [passwordRegisterTextField text];
NSString *inputPasswordVerify = [passwordVerifyRegisterTextField text];
NSLog(@"inputEmail: %@",inputEmail);
NSLog(@"inputUsername: %@",inputUsername);
NSLog(@"inputPassword: %@",inputPassword);
NSLog(@"inputPasswordVerify: %@",inputPasswordVerify);
// attempt create
[currentUser createUser:inputEmail username:inputUsername password:inputPassword passwordVerify:inputPasswordVerify];
}
else {
NSLog(@"error");
[errorLabel setText:@"Invalid entry, please recheck"];
}
Вы можете получить предупреждение, если что-то не так, но я решил показать UILabel
с сообщением об ошибке, так как оно показалось пользователю менее раздражающим. В приведенном выше коде я проверил формат адреса электронной почты, длину пароля и соответствие паролей (введенных дважды для проверки). Если все эти тесты не были пройдены, приложение не выполнило действие. Конечно, вы можете выбрать, какое поле вы хотите проверить ... просто подумал, что поделюсь своим примером.