(转)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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
//邮箱 + ( 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开发中邮箱,电话号码,身份证,密码,昵称正则表达式验证
//邮箱 + (BOOL) validateEmail:(NSString *)email { NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@ ...
- IOS开发中怎样验证邮箱的合法性
IOS开发中怎样验证邮箱的合法性 文章参考:http://www.codes51.com/article/detail_94157.html 代码: - (void)viewDidLoad { [su ...
- iOS开发中打电话发短信等功能的实现
在APP开发中,可能会涉及到打电话.发短信.发邮件等功能.比如说,通常一个产品的"关于"页面,会有开发者的联系方式,理想情况下,当用户点击该电话号码时,能够自动的帮用户拨出去,就涉 ...
- iOS开发中遇到的一些问题及解决方案【转载】
iOS开发中遇到的一些问题及解决方案[转载] 2015-12-29 [385][scrollView不接受点击事件,是因为事件传递失败] // // MyScrollView.m // Creat ...
- 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 ...
随机推荐
- SpringMVC 视图和视图解析器&表单标签
视图和视图解析器 请求处理方法执行完成后,最终返回一个 ModelAndView 对象.对于那些返回 String,View 或 ModeMap 等类型的处理方法,Spring MVC 也会在内部将它 ...
- Android中的Service小结
简介 Service适合执行不需要和用户交互,而且长期运行的任务.即使程序被切换回后台,服务仍然可以正常运行.Service并不自动开启线程,默认运行在主线程中. Service中需要重载的函数 on ...
- PHP初步(中)
一.文件载入 文件载入:将目标文件的代码载入到当前的位置上,有时候也叫流程控制. 文件载入的目的是实现网站的分层设计,因为不同的页面可能有很多相同的区域(相同的代码),这些相同的代码只需要写一次,有需 ...
- C++ TR1 Function Bind
在C++ 11出现以前,C++的事件一般是通过回调形试来实现,如 void (*func)(int,int,int),其实际上是一种函数指针,在C中调用时是直接写函数名在参数列表中,而在C++中,大部 ...
- CSS3背景
1.背景的五种基本属性 background-color(背景颜色) background-image(背景图片) background-repeat(背景图片展示方式) background-a ...
- my vim
set nu set cindent set smartindent set cursorline set showcmd set completeopt=preview,menu set autow ...
- selenium问题记录
错误一: 错误信息:Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output: 原 ...
- C语言实现粒子群算法(PSO)一
最近在温习C语言,看的书是<C primer Plus>,忽然想起来以前在参加数学建模的时候,用过的一些智能算法,比如遗传算法.粒子群算法.蚁群算法等等.当时是使用MATLAB来实现的,而 ...
- LeetCode 21 -- Merge Two Sorted Lists
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ...
- Html 之菜单导航(二)
网页菜单 网页菜单是一个网页的重要部分,它提供了用户可以对网站所有页面的导航,也是可能是内容的分类,例如淘宝 衣服 鞋子 水果 电脑 等等之类,也可以是 类似于游戏宣传网页一样子,酷炫的js特效 f ...