(转)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 ...
随机推荐
- StormNimbus集群保证CAP流程
Nimbus启动时,检查当前本地是不是有所有的topology的代码,同时去申请获取leader锁,如果某台nimbus节点成为了集群的leader,会再去检查一次当前本地的代码是不是包含所有活动状态 ...
- 配置Java开发IDE
http://www.cnblogs.com/feichexia/archive/2012/11/07/Vim_JavaIDE.html
- GDB中汇编调试
GDB中汇编调试 1.输入代码 2.使用gcc - g example.c -o example -m32指令在64位的机器上产生32位汇编,时遇到问题使用-m32指令报错,参考卢肖明同学博客知道这是 ...
- Python学习基本
刚开始学习是看了这个网站: 廖雪峰的官方网站 http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac92707 ...
- jquery mobile上传图片完整例子(包含ios图片横向问题处理和C#后台图片压缩)
上传图片本身是个基本的小功能,但是到了移动端就不那么简单了,相信找到这篇文章的你一定有深深的同感. 本文实例是:在(移动端)页面中点击图片,然后选择文件,然后保存.使用Asp.net 难点一:后台获取 ...
- android小技巧(二)
一.如何控制Android LED等?(设置NotificationManager的一些参数) 代码如下: final int ID_LED=19871103; NotificationManage ...
- #define用法解析
#define Add(a,b) a+b; 在一般使用的时候是没有问题的,但是如果遇到如: c * Add(a,b) * d 的时候就会出现问题,代数式的本意是a+b然后去和c,d相乘,但是因为使用了 ...
- RS232,RS422串口标准小结
RS232和RS422都是广泛使用的异步串行接口标准.由于它们实现简单且占用IO口资源少,在低速传输下是不错的方案. RS232是单端走线,最高波特率为115200,传输最远距离不超过150米,它的逻 ...
- c++程序员必知的几个库
c++程序员必知的几个库 1.C++各大有名库的介绍——C++标准库 2.C++各大有名库的介绍——准标准库Boost 3.C++各大有名库的介绍——GUI 4.C++各大有名库的介绍——网络通信 5 ...
- docker 源码分析 三(基于1.8.2版本),NewDaemon启动
本文来分析一下New Daemon的启动过程:在daemon/daemon.go文件中: func NewDaemon(config *Config, registryService *registr ...