//判断邮箱是否合法的代码
-(
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:
@"_-"
];
//使用compare option 来设定比较规则,如
//NSCaseInsensitiveSearch是不区分大小写
//NSLiteralSearch 进行完全比较,区分大小写
//NSNumericSearch 只比较定符串的个数,而不比较字符串的字面值
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
// no ''@'' or ''.'' present
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];
}