iOS正则表达式

首先简单介绍一下正则表达式的基本写法及用法

\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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值