-(
BOOL
)validateEmail:(NSString*)email
{
if
((
0
!= [email rangeOfString:
@"@"
]
.length
) &&
(
0
!= [email rangeOfString:
@"."
]
.length
))
{
NSCharacterSet* tmpInvalidCharSet = [[NSCharacterSet alphanumericCharacterSet] invertedSet];
NSMutableCharacterSet* tmpInvalidMutableCharSet = [[tmpInvalidCharSet mutableCopy] autorelease];
[tmpInvalidMutableCharSet removeCharactersInString:
@"_-"
];
NSRange range
1
= [email rangeOfString:
@"@"
options:NSCaseInsensitiveSearch];
NSString* userNameString = [email substringToIndex:range
1
.location
];
NSArray* userNameArray = [userNameString componentsSeparatedByString:
@"."
];
for
(NSString* string
in
userNameArray)
{
NSRange rangeOfInavlidChars = [string rangeOfCharacterFromSet: tmpInvalidMutableCharSet];
if
(rangeOfInavlidChars
.length
!=
0
|| [string isEqualToString:
@""
])
return
NO
;
}
NSString *domainString = [email substringFromIndex:range
1
.location
+
1
];
NSArray *domainArray = [domainString componentsSeparatedByString:
@"."
];
for
(NSString *string
in
domainArray)
{
NSRange rangeOfInavlidChars=[string rangeOfCharacterFromSet:tmpInvalidMutableCharSet];
if
(rangeOfInavlidChars
.length
!=
0
|| [string isEqualToString:
@""
])
return
NO
;
}
return
YES
;
}
else
return
NO
;
}
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];
}