问题描述
- 在iphone里使用reg-ex验证邮件
- 在iphone里使用reg-ex验证邮件,代码如下:
+ (BOOL) stringIsValidEmail:(NSString *)checkString;{ NSString *emailRegEx = @""(?:[a-zA-Z0-9!#$%\&'*+/=?\^_`{|}~-]+(?:\.[a-z0-9!#$%\&'*+/=?\^_`{|}"" @""~-]+)*|""(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\"" @""x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*"")@(?:(?:[a-z0-9](?:[a-"" @""z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5"" @""]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-"" @""9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21"" @""-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])""; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@""SELF MATCHES %@"" emailRegEx]; return [emailTest evaluateWithObject:checkString];}
怎么样设置参数可以返回false?
解决方案
看下面代码:
- (BOOL) IsValidEmail:(NSString *)checkString { BOOL sticterFilter = YES; NSString *stricterFilterString = @""[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{24}""; NSString *laxString = @"".+@.+\.[A-Za-z]{2}[A-Za-z]*""; NSString *emailRegex = sticterFilter ? stricterFilterString : laxString; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@""SELF MATCHES %@"" emailRegex]; return [emailTest evaluateWithObject:checkString];}
时间: 2024-08-02 02:25:35