1,添加libicucore.dylib类库。
2,下载并导入到自己当前项目,然后引入头文件,下载地址:http://pan.baidu.com/s/1dDozsBJ
#import “RegexKitLite.h”
3,匹配:
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
|
NSString *
email
=
@
"skyzizhu@126.com"
;
//匹配Email
if
(
[
email
isMatchedByRegex
:
@
"\\b([a-zA-Z0-9%_.+\\-]+)@([a-zA-Z0-9.\\-]+?\\.[a-zA-Z]{2,6})\\b"
]
)
{
NSLog
(
@
"1"
)
;
}
else
{
NSLog
(
@
"0"
)
;
}
NSString *
http
=
@
"http://www.iashes.com/cate"
;
//匹配URL
if
(
[
http
isMatchedByRegex
:
@
"[a-zA-z]+://[^s]*"
]
)
{
NSLog
(
@
"1"
)
;
}
else
{
NSLog
(
@
"0"
)
;
}
NSString *
number
=
@
"92939495969a"
;
//9-15个由数字字母组成的字符串
if
(
[
number
isMatchedByRegex
:
@
"^[A-Za-z0-9]{9,15}$"
]
)
{
NSLog
(
@
"1"
)
;
}
else
{
NSLog
(
@
"0"
)
;
}
NSString *
phoneNumber
=
@
"13354286969"
;
//判断手机
if
(
[
phoneNumber
isMatchedByRegex
:
@
"^(13[0-9]|15[0-9]|18[0-9])\\d{8}$"
]
)
{
NSLog
(
@
"1"
)
;
}
else
{
NSLog
(
@
"0"
)
;
}
NSString *
postCode
=
@
"116000"
;
//邮编
if
(
[
postCode
isMatchedByRegex
:
@
"[1-9]{1}(\\d+){5}"
]
)
{
NSLog
(
@
"1"
)
;
}
else
{
NSLog
(
@
"0"
)
;
}
|
stringByMatching返回值是BOOL类型,如果匹配正确则1,否则0.
下边是复制别人的:
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
|
常用正则表达式大全!(例如:匹配中文、匹配
html)
匹配中文字符的正则表达式:
[
u4e00
-
u9fa5
]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
匹配双字节字符
(包括汉字在内
):
[
^
x00
-
xff
]
评注:可以用来计算字符串的长度(一个双字节字符长度计
2,
ASCII字符计
1)
匹配空白行的正则表达式:
ns*
r
评注:可以用来删除空白行
匹配
HTML标记的正则表达式:
<
(
S*
?
)
[
^
>
]
*
>
.
*
?
|
<
.
*
?
/
>
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
匹配首尾空白字符的正则表达式:
^
s*
|
s*
$
评注:可以用来删除行首行尾的空白字符
(包括空格、制表符、换页符等等
),非常有用的表达式
匹配
Email地址的正则表达式:
w
+
(
[
-
+
.
]
w
+
)
*
@
w
+
(
[
-
.
]
w
+
)
*
.
w
+
(
[
-
.
]
w
+
)
*
评注:表单验证时很实用
匹配网址
URL的正则表达式:
[
a
-
zA
-
z
]
+
:
//[^s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求
匹配帐号是否合法
(字母开头,允许
5
-
16字节,允许字母数字下划线
):
^
[
a
-
zA
-
Z
]
[
a
-
zA
-
Z0
-
9_
]
{
4
,
15
}
$
评注:表单验证时很实用
匹配国内电话号码:
d
{
3
}
-
d
{
8
}
|
d
{
4
}
-
d
{
7
}
评注:匹配形式如
0511
-
4405222
或
021
-
87888822
匹配腾讯
QQ号:
[
1
-
9
]
[
0
-
9
]
{
4
,
}
评注:腾讯
QQ号从
10000开始
匹配中国邮政编码:
[
1
-
9
]
d
{
5
}
(
?
!
d
)
评注:中国邮政编码为
6位数字
匹配身份证:
d
{
15
}
|
d
{
18
}
评注:中国的身份证为
15位或
18位
匹配
ip地址:
d
+
.
d
+
.
d
+
.
d
+
评注:提取
ip地址时有用
匹配特定数字:
^
[
1
-
9
]
d*
$
//匹配正整数
^
-
[
1
-
9
]
d*
$
//匹配负整数
^
-
?
[
1
-
9
]
d*
$
//匹配整数
^
[
1
-
9
]
d*
|
0
$
//匹配非负整数(正整数 + 0)
^
-
[
1
-
9
]
d*
|
0
$
//匹配非正整数(负整数 + 0)
^
[
1
-
9
]
d*
.
d*
|
0.d
*
[
1
-
9
]
d*
$
//匹配正浮点数
^
-
(
[
1
-
9
]
d*
.
d*
|
0.d
*
[
1
-
9
]
d*
)
$
//匹配负浮点数
^
-
?
(
[
1
-
9
]
d*
.
d*
|
0.d
*
[
1
-
9
]
d*
|
0
?
.
0
+
|
0
)
$
//匹配浮点数
^
[
1
-
9
]
d*
.
d*
|
0.d
*
[
1
-
9
]
d*
|
0
?
.
0
+
|
0
$
//匹配非负浮点数(正浮点数 + 0)
^
(
-
(
[
1
-
9
]
d*
.
d*
|
0.d
*
[
1
-
9
]
d*
)
)
|
0
?
.
0
+
|
0
$
//匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正
匹配特定字符串:
^
[
A
-
Za
-
z
]
+
$
//匹配由26个英文字母组成的字符串
^
[
A
-
Z
]
+
$
//匹配由26个英文字母的大写组成的字符串
^
[
a
-
z
]
+
$
//匹配由26个英文字母的小写组成的字符串
^
[
A
-
Za
-
z0
-
9
]
+
$
//匹配由数字和26个英文字母组成的字符串
^
w
+
$
//匹配由数字、26个英文字母或者下划线组成的字符串
在使用
RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下
:
只能输入数字:“
^
[
0
-
9
]
*
$”
只能输入
n位的数字:“
^
d
{
n
}
$”
只能输入至少
n位数字:“
^
d
{
n
,
}
$”
只能输入
m
-
n位的数字:“
^
d
{
m
,
n
}
$”
只能输入零和非零开头的数字:“
^
(
0
|
[
1
-
9
]
[
0
-
9
]
*
)
$”
只能输入有两位小数的正实数:“
^
[
0
-
9
]
+
(
.
[
0
-
9
]
{
2
}
)
?
$”
只能输入有
1
-
3位小数的正实数:“
^
[
0
-
9
]
+
(
.
[
0
-
9
]
{
1
,
3
}
)
?
$”
只能输入非零的正整数:“
^
+
?
[
1
-
9
]
[
0
-
9
]
*
$”
只能输入非零的负整数:“
^
-
[
1
-
9
]
[
0
-
9
]
*
$”
只能输入长度为
3的字符:“
^
.
{
3
}
$”
只能输入由
26个英文字母组成的字符串:“
^
[
A
-
Za
-
z
]
+
$”
只能输入由
26个大写英文字母组成的字符串:“
^
[
A
-
Z
]
+
$”
只能输入由
26个小写英文字母组成的字符串:“
^
[
a
-
z
]
+
$”
只能输入由数字和
26个英文字母组成的字符串:“
^
[
A
-
Za
-
z0
-
9
]
+
$”
只能输入由数字、
26个英文字母或者下划线组成的字符串:“
^
w
+
$”
验证用户密码
:“
^
[
a
-
zA
-
Z
]
w
{
5
,
17
}
$”正确格式为:以字母开头,长度在
6
-
18之间,
只能包含字符、数字和下划线。
验证是否含有
^
%
&
',;=?$"等字符:“[^%&'
,
;
=
?
$
x22
]
+”
只能输入汉字:“
^
[
u4e00
-
u9fa5
]
,
{
0
,
}
$”
验证
Email地址:“
^
w
+
[
-
+
.
]
w
+
)
*
@
w
+
(
[
-
.
]
w
+
)
*
.
w
+
(
[
-
.
]
w
+
)
*
$”
验证
InternetURL:“
^
http
:
//([w-]+.)+[w-]+(/[w-./?%&=]*)?$”
验证电话号码:“
^
(
(
d
{
3
,
4
}
)
|
d
{
3
,
4
}
-
)
?
d
{
7
,
8
}
$”
正确格式为:“
XXXX
-
XXXXXXX”,“
XXXX
-
XXXXXXXX”,“
XXX
-
XXXXXXX”,
“
XXX
-
XXXXXXXX”,“
XXXXXXX”,“
XXXXXXXX”。
验证身份证号(
15位或
18位数字):“
^
d
{
15
}
|
d
{
}
18
$”
验证一年的
12个月:“
^
(
0
?
[
1
-
9
]
|
1
[
0
-
2
]
)
$”正确格式为:“
01”
-“
09”和“
1”“
12”
验证一个月的
31天:“
^
(
(
0
?
[
1
-
9
]
)
|
(
(
1
|
2
)
[
0
-
9
]
)
|
30
|
31
)
$”
正确格式为:“
01”“
09”和“
1”“
31”。
匹配中文字符的正则表达式:
[
u4e00
-
u9fa5
]
匹配双字节字符
(包括汉字在内
):
[
^
x00
-
xff
]
匹配空行的正则表达式:
n
[
s
|
]
*
r
匹配
HTML标记的正则表达式:
/
<
(
.
*
)
>
.
*
|
<
(
.
*
)
/
>
/
匹配首尾空格的正则表达式:
(
^
s*
)
|
(
s*
$
)
匹配
Email地址的正则表达式:
w
+
(
[
-
+
.
]
w
+
)
*
@
w
+
(
[
-
.
]
w
+
)
*
.
w
+
(
[
-
.
]
w
+
)
*
匹配网址
URL的正则表达式:
[
url
=
http
:
//([w-]+.)+[w-]+(/[w]http://([w-]+.)+[w-]+(/[w[/url]- ./?%&=]*)?
|