iOS: 详细的正则表达式
一、简单的正则规则
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})(·[\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: 详细的正则表达式相关推荐
- iOS开发中正则表达式的基础使用
正则表达式?什么是正则表达式? 百度百科给出的解释是这样的:正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串. 根据我的学习,我理解的正则表达式是:一个字符串,这个字符串用来描述我们 ...
- [绍棠] iOS开发中正则表达式的基础使用
正则表达式?什么是正则表达式? 百度百科给出的解释是这样的:正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串. 根据我的学习,我理解的正则表达式是:一个字符串,这个字符串用来描述我们 ...
- python正则表达式操作指南_第二篇详细Python正则表达式操作指南(re使用)
接下来昨天的内容 执行匹配 一旦你有了已经编译了的正则表达式的对象,你要用它做什么呢?`RegexObject` 实例有一些方法和属性.这里只显示了最重要的几个,如果要看完整的列表请查阅 Python ...
- python正则表达式操作指南_比较详细Python正则表达式操作指南(re使用)
就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.使用这个小型语言,你可以为想要匹配的相应字符串集指定规则:该 ...
- iOS 手机 邮箱 正则表达式
//iOS代码//判断邮箱格式是否正确的代码: //利用正则表达式验证 -(BOOL)isValidateEmail:(NSString *)email {NSString *emailRegex = ...
- php srelen 字符串_比较详细Python正则表达式操作指南
Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式.Python 1.5之前版本则是通过 regex 模块提供 Emecs 风格的模式.Emacs 风格模式可读性稍差 ...
- iOS中的正则表达式[转]
1. 下面一个简单的使用正则表达式的一个例子:NSRegularExpression 类 -(void)parseString{ //组装一个字符串,需要把里面的网址解析出来 NSString *ur ...
- IOS自带正则表达式NSPredicate的使用
首先举一个例子: 匹配9-15个由字母/数字组成的字符串的正则表达式: NSString * regex = @"^[A-Za-z0-9]{9,15}$"; NSP ...
- iOS进阶之正则表达式
最近一直在弄正则表达式,于是在这里整理一下,便于日后查阅. 1.常用符号 ^:字符串的开始 $:字符串的结束 *:表示零个或若干个 ?:表示零个或一个 +:表示一个或若干个 | :表示 或 操作 . ...
- react-native 打包app发布android / ios详细教程
发布Android教程 第一步:从项目根目录进入到android 目录 第二步:使用命令 gradlew clean (mac电脑 ./gradlew clean)清空缓存. 注意: mac电脑如果 ...
最新文章
- java实现模拟考试系统,基于jsp的驾照模拟考试系统a-JavaEE实现驾照模拟考试系统a - java项目源码...
- Win7上Git安装及配置过程
- Gemini论文笔记
- gulp前端构建化工具,帮你搞定不同浏览器的兼容性写法问题
- 谷歌推出了其首款触屏笔记本电脑
- 江西财经研究生834c语言试卷,江西财经大学2006年考研C语言程序设计试题(B卷)
- 关于关闭office 2010中的OSPPSVC服务的方法
- zlib-1.2.11手册
- Python+Matplotlib绘制带误差线的柱状图
- CDH-5.13.1离线安装教程
- signature=e77a95aa96da4f165d75bdbdf33ba079,来用百度密语吧!!!
- Vue Cli 3代理配置
- IIR数字程控滤波器
- 文明4 java_文明4主题曲《Baba Yetu》(敬请关注中文歌词部分~)
- 驱动蜂鸣器电路-可参考
- 【免费资源分享】给大家分享一款自己编写的免费语音合成软件,免费文字转语音,无需提供任何接口么,傻瓜式使用!
- 在做了在做了!次世代迭代进展让你一睹为快!【新倩女幽魂OL】
- 200个句子搞定3500个高考词汇,究竟有多少词?
- java 替换空白字符串
- pdf签名无效解决办法_为什么下载下来的电子合同提示有效性未知或至少一个签名有问题?...
热门文章
- 新地址 贴吧_建议收藏 | 新媒体人必备5大工具
- 计算机开机无法定位,开机提示无法定位程序输入点...于动态链接库CommFunc.dll上...
- java 链表实现堆栈_用JAVA实现堆栈(链表篇)
- 奇门对接需求设计_奇门格局详解_-_么学声_张志春
- 密码生成器--python
- 蚌埠计算机学校招生,蚌埠高级技工学校招生政策
- java socket 清理缓冲器_2021年Java全套面试题抢先看!中篇(更新中......)
- Chrome网页性能分析工具
- 不忘初芯 NEC发布系列工程显示新品解决方案
- Java操作DB2 XML数据实践