正则表达式是什么鬼呀?(大神请绕路哦)


  在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard),也就是*和?。如果你想查找某个目录下的所有的Word文档的话,你会搜索*.doc。在这里,*会被解释成任意的字符串。和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂——比如你可以编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号“-”,最后是7或8位数字的字符串(像010-12345678或0376-7654321)。嘿嘿嘿!正则表达式小王我也是略懂皮毛。只会些简单的。

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中的正则表达式远远不止这么多,这些只是小王觉得在项目中最最常用滴,根据项目的实际需求还需要重新设计嘿!等以后用到新滴一定第一时间给大家分享,哈哈哈。大神,请绕路!
最后再献上一份博客关于正则表达式的理论博客《正则表达式30分钟入门教程》,http://deerchao.net/tutorials/regex/regex.htm#mission

iOS中常用的正则表达式相关推荐

  1. php的正则表达式函数,php中常用的正则表达式函数

    php中常用的正则表达式函数 * preg_match() * preg_match_all() * preg_replace() * preg_filter() * preg_grep() * pr ...

  2. ios中常用数据类型相互转换

    ios中常用数据类型相互转换 //1. NSMutableArray和NSArray互转 // NSArray转为NSMutableArray NSMutableArray *arrM = [arr ...

  3. php正则运用,php中常用的正则表达式的介绍及应用实例代码

    更全面的实例,可以参考 最常用的PHP正则表达式收集整理 //www.jb51.net/article/14049.htm php 正则表达式小结 //www.jb51.net/article/198 ...

  4. iOS中常用的设计模式

    iOS中常用的几种设计模式 iOS中常用的几种设计模式 1.代理模式 2. 观察者模式(通知机制,KVO机制) 4. 单例 5. 适配器() 6. 策略 9. 装饰器(Decorator) 10. 原 ...

  5. ios中常用的第三方库

    下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITableVie ...

  6. iOS中常用的几种延时加载/执行的处理办法

    在开发过程中 我们会常常需要用到这样的延迟处理这种技术 那么, 一般你们会怎么去做这样的一个延时操作呢? 比如, 用户登录成功以后,提示登录成功,然后再将控制器从登录页切到主页 又或是,等待一个动画完 ...

  7. iOS中常用的四种数据持久化方法

    iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data 1.属性列表 涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults s ...

  8. input pattern中常用的正则表达式

    常用的正则表达式pattern的用法都一样,这里不再啰嗦各种详细写法了,只是列出来一些常用的正则就好了:信用卡 [0-9]{13,16}银联卡 ^62[0-5]\d{13,16}$Visa: ^4[0 ...

  9. 工作中常用的正则表达式

    正则表达式中的常用符号 ^ 匹配输入字符串的开始位置. $ 匹配输入字符串的结束位置. * 匹配前面的子表达式零次或多次. \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个后向引用.或一个八 ...

最新文章

  1. CS231n 学习笔记(3)——神经网络 part3 :最优化
  2. Keil forc51安装教程
  3. ntv.js框架(第三章) - 机顶盒HTML和CSS编写注意事项
  4. Django(part36)--cookies
  5. axure form列表_常见的列表页如何用Axure画出来
  6. linux mysql connector_fd_在CentOS里使用MySQL Connector/C++
  7. python学习笔记4:函数
  8. BZOJ1646[Usaco2007 Open] 抓住那头牛
  9. extjs4 视频教程
  10. 华为开发者学堂 | 囤课畅学 码住未来
  11. 云计算,大数据,人工智能本质和概念
  12. 【数字预失真】基于Volterra级数的宽带射频功放数字预失真线性化技术matlab仿真
  13. 使用python实现用微信远程控制电脑
  14. 不等距双杆模型_对磁场中双杆模型问题的解析
  15. Idea 激活(MAC/WIN)使用教程
  16. Thinking In C++中文版
  17. 小学计算机教案河南大学版,河南大学出版社-小学信息技术第二册(下)教案.doc...
  18. 【网络教程】青龙面板常用命令汇总
  19. 【渝粤题库】国家开放大学2021春3909安全人机工程题目
  20. 移动办公系统与OA办公软件区别

热门文章

  1. Centos系统镜像下载
  2. 汇编学习的安装DOSBOX及debug.exe教程
  3. 阿里云oss上传图片
  4. Flask wtforms
  5. SpringMVC接收Post的实体/JSon数据
  6. Ubuntu root 密码忘记-恢复
  7. 让TortoiseGit记住帐号密码方法
  8. SQLite在字符串比较中的大小写问题
  9. YEAH!!距离拿回touch4倒计时:7days
  10. Terracotta Express Model 和 Terracotta Customized Model