首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

判断信箱是否合法

2012-09-27 
判断邮箱是否合法方法1:BOOL NSStringIsValidEmail(NSString *checkString)? {? ??? NString *stricterFil

判断邮箱是否合法

方法1:

BOOL NSStringIsValidEmail(NSString *checkString)?
{?
??? NString *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];?
}

方法2:

-(BOOL)validateEmail:(NSString*)email{
???
??? if( (0 != [email rangeOfString:@"@"].length) &&? (0 != [email rangeOfString:@"."].length) )
??? {
??????? NSMutableCharacterSet *invalidCharSet = [[[[NSCharacterSet alphanumericCharacterSet] invertedSet]mutableCopy]autorelease];
??????? [invalidCharSet removeCharactersInString:@"_-"];
???????
??????? NSRange range1 = [email rangeOfString:@"@" options:NSCaseInsensitiveSearch];
???????
??????? // If username part contains any character other than "."? "_" "-"
???????
??????? NSString *usernamePart = [email substringToIndex:range1.location];
??????? NSArray *stringsArray1 = [usernamePart componentsSeparatedByString:@"."];
??????? for (NSString *string in stringsArray1) {
??????????? NSRange rangeOfInavlidChars=[string rangeOfCharacterFromSet: invalidCharSet];
??????????? if(rangeOfInavlidChars.length !=0 || [string isEqualToString:@""])
??????????????? return NO;
??????? }
???????
??????? NSString *domainPart = [email substringFromIndex:range1.location+1];
??????? NSArray *stringsArray2 = [domainPart componentsSeparatedByString:@"."];
???????
??????? for (NSString *string in stringsArray2) {
??????????? NSRange rangeOfInavlidChars=[string rangeOfCharacterFromSet:invalidCharSet];
??????????? if(rangeOfInavlidChars.length !=0 || [string isEqualToString:@""])
??????????????? return NO;
??????? }
???????
??????? return YES;
??? }
??? else // no ''@'' or ''.'' present
??????? return NO;
}

热点排行