iOS--正则表达式
来源:互联网 发布:mac储存位置更改 编辑:程序博客网 时间:2024/05/29 17:22
首先简单介绍一下正则表达式的基本写法及用法
\d 匹配任何一个数字,即[0-9]
\d+表示1个以上的数字
\d*标示0个或多个数字
\s 表示分隔符,包括空格、制表符和换行符
\s* 0个或多个分隔符
\w 表示字母、数字和下划线,这里还包括Unicode字符,不同的语言里有些不同
\w{4} 表示4个非空白字符
. 表示任何一个字符,不包括换行符
.* 表示任何多个字符,当然也不包括换行符了
^([0-9]) 表示数字开头
([0-9])$ 表示数字结尾
([0-9A-Za-z]) 表示数字字母
| 表示或的关系,如\d|\w 表示数字或字母
(.|[\r\n])* 表示任何多个字符,包括换行符,贪婪扫描
(.|[\r\n])*? 表示任何多个字符,包括换行符,懒惰扫描
(?:.|[\\r\\n]) 以(?:开头时的分组信息,表示不读取到缓冲器里,避免rangeAtIndex调用时产生副作用,后面还会遇到这样的(?:写法
下面将自己写的一些通用的正则表达式函数罗列一下,以后后续参考
1
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
@implementation TSRegularExpressionUtil
//邮箱
+ (
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];
}
//month
+ (
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];
}
@end
0 0
- ios 正则表达式
- IOS正则表达式
- IOS正则表达式
- ios使用正则表达式
- IOS 正则表达式
- iOS正则表达式
- ios 正则表达式
- IOS-常用正则表达式
- ios之正则表达式
- iOS 正则表达式
- ios 正则表达式
- ios电话号码正则表达式
- iOS 正则表达式验证
- ios 正则表达式
- ios电子邮件正则表达式
- ios 使用正则表达式
- iOS 正则表达式
- iOS使用正则表达式
- 【转载】selenium webdriver的各种driver
- 第六周 项目3-括号的匹配
- 线段树
- setitimer定时器的简单使用
- 第6周项目5后缀表达式
- iOS--正则表达式
- CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡
- 顺序表的应用
- 第四周 项目3 单链表的应用
- 第六周项目3—括号的匹配
- Linux下TCP客户端和服务器代码编写
- 第八周 串 项目2 -- 建立链串的算法库
- [Leetcode] Word Ladder
- cookies编程