iOS登陆各种验证(持续更新)

 1 //邮箱
 2 + (BOOL) justEmail:(NSString *)email
 3 {
 4     NSString *emailRegex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
 5     NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
 6     return [emailTest evaluateWithObject:email];
 7 }
 8
 9
10 //手机号码验证
11 + (BOOL) justMobile:(NSString *)mobile
12 {
13     //手机号以13, 15,18开头,八个 \d 数字字符
14     NSString *phoneRegex = @"^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$";
15     NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex];
16     return [phoneTest evaluateWithObject:mobile];
17 }
18
19
20 //车牌号验证
21 + (BOOL) justCarNo:(NSString *)carNo
22 {
23     NSString *carRegex = @"^[\u4e00-\u9fa5]{1}[a-zA-Z]{1}[a-zA-Z_0-9]{4}[a-zA-Z_0-9_\u4e00-\u9fa5]$";
24     NSPredicate *carTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",carRegex];
25     NSLog(@"carTest is %@",carTest);
26     return [carTest evaluateWithObject:carNo];
27 }
28
29
30 //车型
31 + (BOOL) justCarType:(NSString *)CarType
32 {
33     NSString *CarTypeRegex = @"^[\u4E00-\u9FFF]+$";
34     NSPredicate *carTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",CarTypeRegex];
35     return [carTest evaluateWithObject:CarType];
36 }
37
38
39 //用户名
40 + (BOOL) justUserName:(NSString *)name
41 {
42     NSString *userNameRegex = @"^[A-Za-z0-9]{6,20}+$";
43     NSPredicate *userNamePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",userNameRegex];
44     BOOL B = [userNamePredicate evaluateWithObject:name];
45     return B;
46 }
47
48
49 //密码
50 + (BOOL) justPassword:(NSString *)passWord
51 {
52     NSString *passWordRegex = @"^[a-zA-Z0-9]{6,20}+$";
53     NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex];
54     return [passWordPredicate evaluateWithObject:passWord];
55 }
56
57
58 //昵称
59 + (BOOL) justNickname:(NSString *)nickname
60 {
61     NSString *nicknameRegex = @"^[\u4e00-\u9fa5]{4,8}$";
62     NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",nicknameRegex];
63     return [passWordPredicate evaluateWithObject:nickname];
64 }
65
66
67 //身份证号
68 + (BOOL) justIdentityCard: (NSString *)identityCard
69 {
70     BOOL flag;
71     if (identityCard.length <= 0) {
72         flag = NO;
73         return flag;
74     }
75     NSString *regex2 = @"^(\\d{14}|\\d{17})(\\d|[xX])$";
76     NSPredicate *identityCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];
77     return [identityCardPredicate evaluateWithObject:identityCard];
78 }
时间: 2024-10-10 16:32:38

iOS登陆各种验证(持续更新)的相关文章

iOS系列教程 目录 持续更新...

  前言: 听说搞iOS的都是高富帅,身边妹子无数.咱也来玩玩.哈哈. 本篇所有内容使用的是XCode工具.Swift语言进行开发. 我现在也是学习阶段,每一篇内容都是经过自己实际编写完一遍之后,发现什么问题百度都弄完了才整理发出来的. 如果还是有遗漏的问题,请各位及时批评指出~ 基础篇: iOS系列 基础篇 01 构建HelloWorld,剖析并真机测试 iOS系列 基础篇 02 StoryBoard 故事板文件 iOS系列 基础篇 03 探究应用生命周期 iOS系列 基础篇 04 探究视图生

收藏的iOS技术网站汇总(持续更新ing)

大牛博客 objc.io PS:经典,内容深而广 objc中国 NSHipster PS:很多小细节 NSHipster 中文版 唐巧的技术博客 PS:LZ是唐巧的脑残粉- OneV's Den 王巍 PS:喵神..不解释 Dev Talking PS:经常翻译国外技术博客 sunnyxx的技术博客 shinobicontrols-iOS8 PS:Day-By-Day 系列 超经典 shinobicontrols-iOS7 Kingiol Ding PS:翻译了Day-By-Day-iOS7系列

ios线程总结(持续更新ing)

一.什么是线程: 1.1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程) 2.线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行 3.1个线程中任务的执行是串行的,如果要在1各线程中执行多个任务,那么只能一个一个地按顺序执行这些任务,也就是说,在同一时间内,1个线程只能执行1个任务 二.什么是多线程 1.1个进程中可以开启多条线程,每条线程可以并行(同时)执行不同的任务 例:进程 ——>车间  ,线程——>车间工人 2.多线程的原理:同时间,CPU只能处理1条线程

IOS 移动支付-持续更新

支付宝IOS2.2.1支付 将Demo中AlipaySDK.bundle AlipaySDK.framework libel.a lib crypto.a openssl Util加入到工程,在需要调用的地方加#import <AlipaySDK/AlipaySDK.h> 头文件. 这个地方报错误的还真是多了,呜呜,纠结了好久,说几个常见的,以后见到报错我会更新 -路径问题:请在Build Settings的Search Paths下Header Search Paths中添加"$(

iOS 小知识点(持续更新)

1.如何通过代码设置Button  title的字体大小 设置Button.titleLabel.font = [UIFont systemFontOfSize:<#(CGFloat)#>] : 2.获取当前时间 NSDate *timeDate=[NSDate date]; NSDateFormatter * dateformatter=[[NSDateFormatter alloc] init]; [dateformatter setDateFormat:@"YYYYMMddHH

ios 常见错误整理 持续更新

本文转载至 http://blog.csdn.net/yesjava/article/details/8086185 1. mutating method sent to immutable object' 从字面上理解:可变的消息发给了不可变的对象.比如NSDictionary类型的对象调用setValue方法.应该把NSDictionary 改成NSMutableDictionary类型.   2.Local declaration of 'content' hides instance v

自己总结的 iOS ,Mac 开源项目以及库,知识点------持续更新

自己在 git  上看到一个非常好的总结的东西,但是呢, fork  了几次,就是 fork  不到我的 git 上,干脆复制进去,但是,也是认真去每一个每一个去认真看了,并且也是补充了一些,感觉非常棒,所以好东西要分享,为啥用 CN 博客,有个好处,可以随时修改,可以持续更新,不用每次都要再发表,感觉这样棒棒的 我们 自己总结的iOS.mac开源项目及库,持续更新.... github排名 https://github.com/trending,github搜索:https://github.

iOS开发系列文章(持续更新……)

iOS开发系列的文章,内容循序渐进,包含C语言.ObjC.iOS开发以及日后要写的游戏开发和Swift编程几部分内容.文章会持续更新,希望大家多多关注,如果文章对你有帮助请点赞支持,多谢! 为了方便大家交流,新建一个iOS技术交流群,欢迎大家加入:64555322 C语言 IOS开发系列--C语言之基础知识 IOS开发系列--C语言之数组和字符串 IOS开发系列--C语言之指针 IOS开发系列--C语言之预处理 IOS开发系列--C语言之存储方式和作用域 IOS开发系列--C语言之构造类型 Ob

(转)iOS开发——来改掉那些被禁用的方法吧(持续更新中)

iOS平台在快速的发展,各种接口正在不断的更新.随着iOS9的发布,又有一批老方法不推荐使用了,你若调用这些方法,运行的结果是没有问题的,但是会出现警告“***is deprecated :first deprecated in iOS 9.0 - Use *******”.就像如图所示: 在实际项目开发中,我们要秉承一个信念就是:要把每一个警告当做错误来处理,并解决每一个警告.你想想,你运行一个项目,就算运行成功了,但是出现几十个.甚至几百个黄黄的警告,心情是不是很糟糕呢?我将在这篇博客结合我