У меня есть массив якобы действительных писем, Im тестирует свою инструкцию regex, чтобы проверить, работает ли мой метод regex. Исходя из этого списка, все они должны вернуться через, однако некоторые не делают, как бы я пуленепробиваемые мой код, так что работает соответственно:Проверка электронной почты в iOS - Regex не работает - код содержит массив действительных адресов электронной почты
+(BOOL)isValidEmail: (NSString *)emailString{
BOOL stricterFilter = YES;
NSString *stricterFilterString = @"[A-Z0-9a-z\\._%+-][email protected]([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}";
NSString *laxString = @"[email protected]([A-Za-z0-9]+\\.)+[A-Za-z]{2}[A-Za-z]*";
NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:emailString];
}
массив действительных писем является:
NSArray *array = [NSArray arrayWithObjects:@"[email protected]",
@"[email protected]",
@"[email protected]",
@"[email protected]",
@"[email protected]",
@"[email protected]",
@"[email protected][123.123.123.123]",
@"“email”@example.com",
@"[email protected]",
@"[email protected]",
@"[email protected]",
@"[email protected]",
@"[email protected]",
@"[email protected]",
@"[email protected]",
nil];
Я тогда выполнить этот цикл:
for (NSString * email in array) {
NSLog(@"Email: %@ is valid %@",email,[NSString isValidEmail:email] ? @"YES" : @"NO");
;
}
какие журналы:
Email: [email protected] is valid YES
Email: [email protected] is valid YES
Email: [email protected] is valid YES
Email: [email protected] is valid YES
Email: [email protected] is valid YES
Email: [email protected] is valid NO
Email: [email protected][123.123.123.123] is valid NO
Email: /“email/”@example.com is valid NO
Email: [email protected] is valid YES
Email: [email protected] is valid YES
Email: [email protected] is valid YES
Email: [email protected] is valid YES
Email: [email protected] is valid NO
Email: [email protected] is valid YES
Email: [email protected] is valid YES
Все они должны быть действительны в соответствии с этим Valid email addresses
Спасибо за что, вы знаете, как сделать это в NSString? – DevC
Никогда не использовал NSString, но был бы тот же формат, который у вас есть? NSString * stricterFilterString = @ "[\ da-zA-Z _ + \. \ - \/(" | ")] + @ (([a-zA-Z \ -] + (\. [A-zA-Z] +), {1,2}) | (\ [\ d {1,3} \ \ д {1,3} \ \ д {1,3} \ \ д {1,3} \?...]?)) "; – depperm
К сожалению, я получаю неизвестную escape-последовательность '\.' – DevC