一、简单的正则规则

1.由数字、26个英文字母或者下划线组成的字符串:

^[0-9a-zA-Z_]{1,}$  

2.非负整数(正整数 + 0 ):

^/d+$  

3. 正整数:

 ^[0-9]*[1-9][0-9]*$  

4.非正整数(负整数 + 0):

^((-/d+)|(0+))$  

5. 负整数 :

^-[0-9]*[1-9][0-9]*$  

6.整数:

^-?/d+$  

7.非负浮点数(正浮点数 + 0):

^/d+(/./d+)?$  

8.正浮点数 :

^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$ 

9. 非正浮点数(负浮点数 + 0):

^((-/d+(/./d+)?)|(0+(/.0+)?))$ 

10.负浮点数 :

^(-(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*)))$ 

11. 浮点数 :

^(-?/d+)(/./d+)?$  

12.由26个英文字母组成的字符串 :

^[A-Za-z]+$  

13. 由26个英文字母的大写组成的字符串 :

^[A-Z]+$  

14.由26个英文字母的小写组成的字符串 :

  ^[a-z]+$  

15. 由数字和26个英文字母组成的字符串 :

^[A-Za-z0-9]+$  

16.由数字、26个英文字母或者下划线组成的字符串 :

^/w+$  

17.email地址 :

^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$  

18.url:

 ^[a-zA-z]+://(/w+(-/w+)*)(/.(/w+(-/w+)*))*(/?/S*)?$  

19. 年-月-日:

/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/  

20.月/日/年:

 /^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/  

21.Emil:

 ^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$ 

22. 电话号码:

(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?  

23.IP地址:

^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$ 

24. 匹配中文字符的正则表达式:

[/u4e00-/u9fa5] 

25.匹配双字节字符(包括汉字在内):

[^/x00-/xff]  

26. 匹配空行的正则表达式:

 /n[/s| ]*/r  

27.匹配HTML标记的正则表达式:

 /<(.*)>.*<///1>|<(.*) //>/ 

28.匹配首尾空格的正则表达式:

 (^/s*)|(/s*$)  

29.匹配Email地址的正则表达式:

/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*  

30. 匹配网址URL的正则表达式:

 ^[a-zA-z]+://(//w+(-//w+)*)(//.(//w+(-//w+)*))*(//?//S*)?$  

31. 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):

^[a-zA-Z][a-zA-Z0-9_]{4,15}$  

32. 匹配国内电话号码:

(/d{3}-|/d{4}-)?(/d{8}|/d{7})?  

33.匹配腾讯QQ号:

^[1-9]*[1-9][0-9]*$  

34. 只能输入数字:

 ^[0-9]*$  

35.只能输入n位的数字:

^/d{n}$  

36.只能输入至少n位的数字:

^/d{n,}$  

37.只能输入m~n位的数字:

 ^/d{m,n}$  

38.只能输入零和非零开头的数字:

 ^(0|[1-9][0-9]*)$  

39.只能输入有两位小数的正实数:

^[0-9]+(.[0-9]{2})?$  

40. 只能输入有1~3位小数的正实数:

^[0-9]+(.[0-9]{1,3})?$  

41.只能输入非零的正整数:

 ^/+?[1-9][0-9]*$  

42. 只能输入非零的负整数:

^/-[1-9][0-9]*$  

43.只能输入长度为3的字符:

^.{3}$  

44. 只能输入由26个英文字母组成的字符串:

^[A-Za-z]+$  

45.只能输入由26个大写英文字母组成的字符串:

 ^[A-Z]+$  

46. 只能输入由26个小写英文字母组成的字符串:

^[a-z]+$  

47.只能输入由数字和26个英文字母组成的字符串:

 ^[A-Za-z0-9]+$  

48. 只能输入由数字和26个英文字母或者下划线组成的字符串:

 ^/w+$  

49.验证用户密码(正确格式为: 以字母开头,长度在5~17 之间,只能包含字符、数字和下划线)

^[a-zA-Z]/w{5,17}$  

50.验证是否包含有 ^%&',;=?$/"等字符:

 [^%&',;=?$/x22]+  

51.只能输入汉字:

^[u4e00-u9fa5]{0,}$  

52、只含有汉字、数字、字母、下划线不能以下划线开头和结尾

 ^(?!_)(?!.*?_$)[a-zA-Z0-9_u4e00-u9fa5]+$  

53、只含有汉字、数字、字母、下划线,下划线位置不限

^[a-zA-Z0-9_u4e00-u9fa5]+$  

54、2~4个汉字

^[u4E00-u9FA5]{2,4}$  

二、列举一些简答的demo如下:

//邮箱
+ (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]{4,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]{2,5})(&middot;[\u4e00-\u9fa5]{2,5})*";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];
}//银行卡
+ (BOOL) validateBankCardNumber: (NSString *)bankCardNumber
{BOOL flag;if (bankCardNumber.length <= 0) {flag = NO;return flag;}NSString *regex2 = @"^(\\d{15,30})";NSPredicate *bankCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];return [bankCardPredicate evaluateWithObject:bankCardNumber];
}//银行卡后四位
+ (BOOL) validateBankCardLastNumber: (NSString *)bankCardNumber
{BOOL flag;if (bankCardNumber.length != 4) {flag = NO;return flag;}NSString *regex2 = @"^(\\d{4})";NSPredicate *bankCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];return [bankCardPredicate evaluateWithObject:bankCardNumber];
}//CVN
+ (BOOL) validateCVNCode: (NSString *)cvnCode
{BOOL flag;if (cvnCode.length <= 0) {flag = NO;return flag;}NSString *regex2 = @"^(\\d{3})";NSPredicate *cvnCodePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];return [cvnCodePredicate evaluateWithObject:cvnCode];
}//month
+ (BOOL) validateMonth: (NSString *)month
{BOOL flag;if (!month.length == 2) {flag = NO;return flag;}NSString *regex2 = @"(^(0)([0-9])$)|(^(1)([0-2])$)";NSPredicate *monthPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];return [monthPredicate evaluateWithObject:month];
}//year
+ (BOOL) validateYear: (NSString *)year
{BOOL flag;if (!year.length == 2) {flag = NO;return flag;}NSString *regex2 = @"^([1-3])([0-9])$";NSPredicate *yearPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];return [yearPredicate evaluateWithObject:year];
}//verifyCode
+ (BOOL) validateVerifyCode: (NSString *)verifyCode
{BOOL flag;if (!verifyCode.length == 6) {flag = NO;return flag;}NSString *regex2 = @"^(\\d{6})";NSPredicate *verifyCodePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];return [verifyCodePredicate evaluateWithObject:verifyCode];
}

iOS: 详细的正则表达式相关推荐

  1. iOS开发中正则表达式的基础使用

    正则表达式?什么是正则表达式? 百度百科给出的解释是这样的:正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串. 根据我的学习,我理解的正则表达式是:一个字符串,这个字符串用来描述我们 ...

  2. [绍棠] iOS开发中正则表达式的基础使用

    正则表达式?什么是正则表达式? 百度百科给出的解释是这样的:正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串. 根据我的学习,我理解的正则表达式是:一个字符串,这个字符串用来描述我们 ...

  3. python正则表达式操作指南_第二篇详细Python正则表达式操作指南(re使用)

    接下来昨天的内容 执行匹配 一旦你有了已经编译了的正则表达式的对象,你要用它做什么呢?`RegexObject` 实例有一些方法和属性.这里只显示了最重要的几个,如果要看完整的列表请查阅 Python ...

  4. python正则表达式操作指南_比较详细Python正则表达式操作指南(re使用)

    就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.使用这个小型语言,你可以为想要匹配的相应字符串集指定规则:该 ...

  5. iOS 手机 邮箱 正则表达式

    //iOS代码//判断邮箱格式是否正确的代码: //利用正则表达式验证 -(BOOL)isValidateEmail:(NSString *)email {NSString *emailRegex = ...

  6. php srelen 字符串_比较详细Python正则表达式操作指南

    Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式.Python 1.5之前版本则是通过 regex 模块提供 Emecs 风格的模式.Emacs 风格模式可读性稍差 ...

  7. iOS中的正则表达式[转]

    1. 下面一个简单的使用正则表达式的一个例子:NSRegularExpression 类 -(void)parseString{ //组装一个字符串,需要把里面的网址解析出来 NSString *ur ...

  8. IOS自带正则表达式NSPredicate的使用

    首先举一个例子: 匹配9-15个由字母/数字组成的字符串的正则表达式:     NSString * regex = @"^[A-Za-z0-9]{9,15}$";     NSP ...

  9. iOS进阶之正则表达式

    最近一直在弄正则表达式,于是在这里整理一下,便于日后查阅. 1.常用符号 ^:字符串的开始 $:字符串的结束 *:表示零个或若干个 ?:表示零个或一个 +:表示一个或若干个 | :表示 或 操作 . ...

  10. react-native 打包app发布android / ios详细教程

    发布Android教程 第一步:从项目根目录进入到android 目录 第二步:使用命令 gradlew clean (mac电脑  ./gradlew clean)清空缓存. 注意: mac电脑如果 ...

最新文章

  1. java实现模拟考试系统,基于jsp的驾照模拟考试系统a-JavaEE实现驾照模拟考试系统a - java项目源码...
  2. Win7上Git安装及配置过程
  3. Gemini论文笔记
  4. gulp前端构建化工具,帮你搞定不同浏览器的兼容性写法问题
  5. 谷歌推出了其首款触屏笔记本电脑
  6. 江西财经研究生834c语言试卷,江西财经大学2006年考研C语言程序设计试题(B卷)
  7. 关于关闭office 2010中的OSPPSVC服务的方法
  8. zlib-1.2.11手册
  9. Python+Matplotlib绘制带误差线的柱状图
  10. CDH-5.13.1离线安装教程
  11. signature=e77a95aa96da4f165d75bdbdf33ba079,来用百度密语吧!!!
  12. Vue Cli 3代理配置
  13. IIR数字程控滤波器
  14. 文明4 java_文明4主题曲《Baba Yetu》(敬请关注中文歌词部分~)
  15. 驱动蜂鸣器电路-可参考
  16. 【免费资源分享】给大家分享一款自己编写的免费语音合成软件,免费文字转语音,无需提供任何接口么,傻瓜式使用!
  17. 在做了在做了!次世代迭代进展让你一睹为快!【新倩女幽魂OL】
  18. 200个句子搞定3500个高考词汇,究竟有多少词?
  19. java 替换空白字符串
  20. pdf签名无效解决办法_为什么下载下来的电子合同提示有效性未知或至少一个签名有问题?...

热门文章

  1. 新地址 贴吧_建议收藏 | 新媒体人必备5大工具
  2. 计算机开机无法定位,开机提示无法定位程序输入点...于动态链接库CommFunc.dll上...
  3. java 链表实现堆栈_用JAVA实现堆栈(链表篇)
  4. 奇门对接需求设计_奇门格局详解_-_么学声_张志春
  5. 密码生成器--python
  6. 蚌埠计算机学校招生,蚌埠高级技工学校招生政策
  7. java socket 清理缓冲器_2021年Java全套面试题抢先看!中篇(更新中......)
  8. Chrome网页性能分析工具
  9. 不忘初芯 NEC发布系列工程显示新品解决方案
  10. Java操作DB2 XML数据实践