ios 验证邮箱的合法性
来源:互联网 发布:界面设计用技术软件 编辑:程序博客网 时间:2024/05/01 08:11
一、最简单的就是利用系统的NSPredicate
//利用正则表达式验证
-(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;
}
}
- ios 验证邮箱的合法性
- JavaScript验证邮箱的合法性
- PHP验证邮箱合法性
- 邮箱合法性验证
- IOS开发技巧之──验证邮箱合法性
- IOS开发技巧之──验证邮箱合法性
- 不用正则和使用正则验证邮箱的合法性
- 判断邮箱的合法性
- iOS判断邮箱合法性的代码实现案例
- iOS开发之判断手机号和邮箱的合法性
- iOS验证邮箱的有效性
- OBJ-C邮箱合法性验证实现
- JS----中,英文,邮箱,数字合法性验证
- asp检测邮箱的合法性
- 判断邮箱合法性的方法
- 验证URL的合法性
- 验证姓名的合法性
- 验证进栈出栈的合法性
- sql2008 出错 Microsoft.SqlServer.Diagnostics.STrace
- XP下屏蔽ip冲突提示窗
- 深入了解 Dojo 的服务器推送技术
- .net Cache的使用方法
- Com开发中注意事项
- ios 验证邮箱的合法性
- 在asp.net中如何实现伪静态页
- 【水晶玻璃鞋 14】带宽、下载速度、网速的区别
- APT持续性渗透攻击的九份报告
- Android Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)
- CSS调试工具推荐
- 存储过程分页
- C#如何保存软件设置项
- OOM的深入解析