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 ...
随机推荐
- 网络编程-tcp
一.简单的demo (1)客户端 package com.songyan.tcp; import java.io.IOException; import java.io.InputStream; im ...
- angularjs自动加载和手动加载
(一)自动加载 ng-app是angular的一个指令,代表一个angular应用(也叫模块).使用ng-app或ng-app=""来标记一个DOM结点,让框架会自动加载.也就是说 ...
- 对象数组的初始化:null reference
今天写代码的时候,发现我写的对象数组,只声明,而没有初始化,所以记录一下这个问题:null reference. Animals [] an=new Animals[5];//这只是个对象类型数组的声 ...
- spark DiskBlockManager
RDD本身presist可以是本地存储,本地存储级别的持久化实现方式如下: DiskBlockManager负责管理和维护block和磁盘存储的映射关系,通过blockId作为文件名称,然后如果是多个 ...
- Python数据整合与数据准备-BigGorilla介绍
参考文档:http://www.biggorilla.org/zh-hans/walkt/ 一.前言 “根据访谈记录和专家估计,数据科学家将50%至80%的时间花在搜集和准备难以梳理的数字数据的琐碎工 ...
- PHP性能优化大全
第一章 针对系统调用过多的优化 我这次的优化针对syscall调用过多的问题,所以使用strace跟踪apache进行分析. 1. apache2ctl -X & 使用-X(debug)参 ...
- vue第三方ui使用
举个例子. http://git.oschina.net/tianyong/we-vue 假如要在项目中使用这套ui. npm npm install we-vue -S 直接安装就行了.不需要下载源 ...
- RocketMQ之broker读取本地文件数据
这个load操作发生在启动broker的时候. 所以我们直接进入DefaultMessageStore的load()方法: /** * 加载数据 * * @throws IOException */ ...
- POJ3264 Balanced Lineup 【线段树】+【单点更新】
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 32778 Accepted: 15425 ...
- linux c 获取网卡状态(UP or DOWN)
源代码例如以下: #include <sys/socket.h> #include <sys/ioctl.h> #include <linux/if.h> #inc ...