iOS开发中邮箱,电话号码,身份证,密码,昵称正则表达式验证
//邮箱
+ (
BOOL
) validateEmail:(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];
return
[phoneTest evaluateWithObject:mobile];
}
//车牌号验证
+ (
BOOL
) validateCarNo:(NSString *)carNo
{
NSString *carRegex = @
"^[\u4e00-\u9fa5]{1}[a-zA-Z]{1}[a-zA-Z_0-9]{4}[a-zA-Z_0-9_\u4e00-\u9fa5]$"
;
NSPredicate *carTest = [NSPredicate predicateWithFormat:@
"SELF MATCHES %@"
,carRegex];
NSLog(@
"carTest is %@"
,carTest);
return
[carTest evaluateWithObject:carNo];
}
//车型
+ (
BOOL
) validateCarType:(NSString *)CarType
{
NSString *CarTypeRegex = @
"^[\u4E00-\u9FFF]+$"
;
NSPredicate *carTest = [NSPredicate predicateWithFormat:@
"SELF MATCHES %@"
,CarTypeRegex];
return
[carTest evaluateWithObject:CarType];
}
//用户名
+ (
BOOL
) validateUserName:(NSString *)name
{
NSString *userNameRegex = @
"^[A-Za-z0-9]{6,20}+$"
;
NSPredicate *userNamePredicate = [NSPredicate predicateWithFormat:@
"SELF MATCHES %@"
,userNameRegex];
BOOL
B = [userNamePredicate evaluateWithObject:name];
return
B;
}
//密码
+ (
BOOL
) validatePassword:(NSString *)passWord
{
NSString *passWordRegex = @
"^[a-zA-Z0-9]{6,20}+$"
;
NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@
"SELF MATCHES %@"
,passWordRegex];
return
[passWordPredicate evaluateWithObject:passWord];
}
//昵称
+ (
BOOL
) validateNickname:(NSString *)nickname
{
NSString *nicknameRegex = @
"^[\u4e00-\u9fa5]{4,8}$"
;
NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@
"SELF MATCHES %@"
,nicknameRegex];
return
[passWordPredicate evaluateWithObject:nickname];
}
//身份证号
+ (
BOOL
) validateIdentityCard: (NSString *)identityCard
{
BOOL
flag;
if
(identityCard.length <= 0) {
flag = NO;
return
flag;
}
NSString *regex2 = @
"^(\\d{14}|\\d{17})(\\d|[xX])$"
;
NSPredicate *identityCardPredicate = [NSPredicate predicateWithFormat:@
"SELF MATCHES %@"
,regex2];
return
[identityCardPredicate evaluateWithObject:identityCard];
}
iOS开发中邮箱,电话号码,身份证,密码,昵称正则表达式验证的更多相关文章
- (转)iOS开发中邮箱,电话号码,身份证,密码,昵称正则表达式验证
之前看到觉得不错 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ...
- IOS开发中怎样验证邮箱的合法性
IOS开发中怎样验证邮箱的合法性 文章参考:http://www.codes51.com/article/detail_94157.html 代码: - (void)viewDidLoad { [su ...
- iOS开发中遇到的一些问题及解决方案【转载】
iOS开发中遇到的一些问题及解决方案[转载] 2015-12-29 [385][scrollView不接受点击事件,是因为事件传递失败] // // MyScrollView.m // Creat ...
- iOS开发中打电话发短信等功能的实现
在APP开发中,可能会涉及到打电话.发短信.发邮件等功能.比如说,通常一个产品的"关于"页面,会有开发者的联系方式,理想情况下,当用户点击该电话号码时,能够自动的帮用户拨出去,就涉 ...
- IOS开发中使用CNContact\CNMutableContact 对通讯录增删改查
IOS开发中使用CNContact\CNMutableContact 对通讯录增删改查 首先当然是把CNcontact包含在工程中: @import Contacts; 1.下面是增加联系人的程序段: ...
- 总结iOS开发中的断点续传那些事儿
前言 断点续传概述 断点续传就是从文件赏赐中断的地方重新开始下载或者上传数据,而不是从头文件开始.当下载大文件的时候,如果没有实现断点续传功能,那么每次出现异常或者用户主动的暂停,都会从头下载,这样很 ...
- iOS开发中静态库之".framework静态库"的制作及使用篇
iOS开发中静态库之".framework静态库"的制作及使用篇 .framework静态库支持OC和swift .a静态库如何制作可参照上一篇: iOS开发中静态库之" ...
- iOS开发中静态库制作 之.a静态库制作及使用篇
iOS开发中静态库之".a静态库"的制作及使用篇 一.库的简介 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.库的类型? 根据源代码的公开情况,库可以分为2种类 ...
- ios开发中的小技巧
在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIViewal ...
随机推荐
- 【KMP】BZOJ3670-[Noi2014]动物园
[题目大意][依然借用别人的概括]给定一个长为L的字符串(L<=100W),求一个num数组,num[i]表示长度为i的前缀中字符串S’的数量,其中S‘既是该前缀的前缀也是该前缀的后缀,且|S' ...
- 5.4 集合的排序(Java学习笔记)(Collections.sort(),及Arrays.sort()底层分析)
1.Comparable接口 这个接口顾名思义就是用于排序的,如果要对某些对象进行排序,那么该对象所在的类必须实现 Comparabld接口.Comparable接口只有一个方法CompareTo() ...
- 静态NAT地址转换
1.配置路由器端口ip(两个端口需要设置两个网段) Router(config)#inter f0/1 Router(confiog-if)#ip add 202.1.1.2 255.255.255. ...
- html5:localStorage储存
实例:刷新值会增长,关掉浏览器,再打开,值会在原基础上增长 if(localStorage.pagecount){ localStorage.pagecount=Number(localStorage ...
- [Java基础] java多线程关于消费者和生产者
多线程: 生产与消费 1.生产者Producer生产produce产品,并将产品放到库存inventory里:同时消费者Consumer从库存inventory里消费consume产品. 2.库存in ...
- linux下目录大小为什么是4K?一个目录下最多有个多少个子目录?最多有多少个文件?ls -l显示的内容中total到底是什么?
子目录数太多,会影响搜索性能. 在同一个路径下,一级子目录的个数限制为31998,如果你的应用生成的目录可能会超过这个数,那要注意进行目录分级.例如,如果目录名为数字的话,可以将数字除以10000后的 ...
- Android--使用XMLPull解析xml
在Android中极力推荐的xmlpull方式解析xml.xmlpull不只能够使用在Android上.相同也适用于javase,但在javase环境下.你须要自己去获取xmlpull所依赖的类库. ...
- RegexHelper
ylbtech-Unitity-cs: RegexHelper 验证帮助类 1.A,效果图返回顶部 1.B,源代码返回顶部 1.B.1,RegexMail #region RegexMail pu ...
- HDFS 中向 DataNode 写入数据失败了怎么办
https://blog.csdn.net/HeatDeath/article/details/79012258 http://wenda.chinahadoop.cn/question/3323 h ...
- Ubuntu ssh 代理
ssh代理命令 ssh -qTfnN -D 端口 用户名@远程机器地址 ssh全局代理 proxychains 程序 参数 proxychains 可以把从命令行启动的程序,用上ssh代理 prox ...