下面给出两种不同的方法验证邮箱输入合法性
//通过区分字符串
-(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 range1 = [email rangeOfString:@"@" options:NSCaseInsensitiveSearch];
//取得用户名部分
Nsstring* userNameString = [email substringToIndex:range1.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:range1.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)isValidateEmail:(Nsstring *)email {
Nsstring *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
nspredicate *emailTest = [nspredicate predicateWithFormat:@"SELF MATCHES %@",emailRegex];
return [emailTest evaluateWithObject:email];
}
//通过区分字符串
-(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 range1 = [email rangeOfString:@"@" options:NSCaseInsensitiveSearch];
//取得用户名部分
Nsstring* userNameString = [email substringToIndex:range1.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:range1.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)isValidateEmail:(Nsstring *)email {
Nsstring *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
nspredicate *emailTest = [nspredicate predicateWithFormat:@"SELF MATCHES %@",emailRegex];
return [emailTest evaluateWithObject:email];
}
手机号码验证:
-(BOOL)validateMobile(Nsstring* mobile) {//手机号以13,15,18开头,八个 \d 数字字符
Nsstring *phoneRegex = @"^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$";
nspredicate *phoneTest = [nspredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex];
NSLog(@"phoneTest is %@",phoneTest);
return [phoneTest evaluateWithObject:mobile];
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。