一、校验数字的表达式
1 数字:
^[0-9]*
2n位的数字:\dn
2
n
位
的
数
字
:
\d
n
3 至少n位的数字:
^\d{n,}
4m−n位的数字:\dm,n
4
m
−
n
位
的
数
字
:
\d
m
,
n
5 零和非零开头的数字:
^(0|[1-9][0-9]*)
6非零开头的最多带两位小数的数字:([1−9][0−9]∗)+(.[0−9]1,2)?
6
非
零
开
头
的
最
多
带
两
位
小
数
的
数
字
:
(
[
1
−
9
]
[
0
−
9
]
∗
)
+
(
.
[
0
−
9
]
1
,
2
)
?
7 带1-2位小数的正数或负数:
^(-)?\d+(.\d{1,2})?
8正数、负数、和小数:(−|+)?\d+(.\d+)?
8
正
数
、
负
数
、
和
小
数
:
(
−
|
+
)
?
\d
+
(
.
\d
+
)
?
9 有两位小数的正实数:
^[0-9]+(.[0-9]{2})?
10有1 3位小数的正实数:[0−9]+(.[0−9]1,3)?
10
有
1
3
位
小
数
的
正
实
数
:
[
0
−
9
]
+
(
.
[
0
−
9
]
1
,
3
)
?
11 非零的正整数:
^[1-9]\d*
或([1−9][0−9]∗)1,3
或
(
[
1
−
9
]
[
0
−
9
]
∗
)
1
,
3
或 ^+?[1-9][0-9]*
12非零的负整数:−[1−9][]0−9”∗
12
非
零
的
负
整
数
:
−
[
1
−
9
]
[
]
0
−
9
”
∗
或 ^-[1-9]\d*
13非负整数:\d+
13
非
负
整
数
:
\d
+
或 ^[1-9]\d*|0
14非正整数:−[1−9]\d∗|0
14
非
正
整
数
:
−
[
1
−
9
]
\d
∗
|
0
或 ^((-\d+)|(0+))
15非负浮点数:\d+(.\d+)?
15
非
负
浮
点
数
:
\d
+
(
.
\d
+
)
?
或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0
16非正浮点数:((−\d+(.\d+)?)|(0+(.0+)?))
16
非
正
浮
点
数
:
(
(
−
\d
+
(
.
\d
+
)
?
)
|
(
0
+
(
.0
+
)
?
)
)
或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0
17正浮点数:[1−9]\d∗.\d∗|0.\d∗[1−9]\d∗
17
正
浮
点
数
:
[
1
−
9
]
\d
∗
.
\d
∗
|
0.
\d
∗
[
1
−
9
]
\d
∗
或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))
18负浮点数:−([1−9]\d∗.\d∗|0.\d∗[1−9]\d∗)
18
负
浮
点
数
:
−
(
[
1
−
9
]
\d
∗
.
\d
∗
|
0.
\d
∗
[
1
−
9
]
\d
∗
)
或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))
19浮点数:(−?\d+)(.\d+)?
19
浮
点
数
:
(
−
?
\d
+
)
(
.
\d
+
)
?
或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
二、校验字符的表达式
1 汉字:
^[\u4e00-\u9fa5]{0,}
2英文和数字:[A−Za−z0−9]+
2
英
文
和
数
字
:
[
A
−
Z
a
−
z
0
−
9
]
+
或 ^[A-Za-z0-9]{4,40}
3长度为3−20的所有字符:.3,20
3
长
度
为
3
−
20
的
所
有
字
符
:
.
3
,
20
4 由26个英文字母组成的字符串:
^[A-Za-z]+
5由26个大写英文字母组成的字符串:[A−Z]+
5
由
26
个
大
写
英
文
字
母
组
成
的
字
符
串
:
[
A
−
Z
]
+
6 由26个小写英文字母组成的字符串:
^[a-z]+
7由数字和26个英文字母组成的字符串:[A−Za−z0−9]+
7
由
数
字
和
26
个
英
文
字
母
组
成
的
字
符
串
:
[
A
−
Z
a
−
z
0
−
9
]
+
8 由数字、26个英文字母或者下划线组成的字符串:
^\w+
或\w3,20
或
\w
3
,
20
9 中文、英文、数字包括下划线:
^[\u4E00-\u9FA5A-Za-z0-9_]+
10中文、英文、数字但不包括下划线等符号:[\u4E00−\u9FA5A−Za−z0−9]+
10
中
文
、
英
文
、
数
字
但
不
包
括
下
划
线
等
符
号
:
[
\u
4
E
00
−
\u
9
F
A
5
A
−
Z
a
−
z
0
−
9
]
+
或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}11 可以输入含有^%&’,;=?
11 可以输入含有^%&’,;=?
\”等字符:
[^%&’,;=?$\x22]+
12 禁止输入含有~的字符:
[^~\x22]+
三、特殊需求表达式
1、 Email地址:
^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$
2 、域名:
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
3 、InternetURL:
[a-zA-z]+://[^\s]* 或 ^http://([\w-]+.)+[\w-]+(/[\w-./?%&=]*)?
4、手机号码:(13[0−9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d8
4
、
手
机
号
码
:
(
13
[
0
−
9
]
|
14
[
5
|
7
]
|
15
[
0
|
1
|
2
|
3
|
5
|
6
|
7
|
8
|
9
]
|
18
[
0
|
1
|
2
|
3
|
5
|
6
|
7
|
8
|
9
]
)
\d
8
5 、电话号码(“XXX-XXXXXXX”、”XXXX-XXXXXXXX”、”XXX-XXXXXXX”、”XXX-XXXXXXXX”、”XXXXXXX”和”XXXXXXXX):
^((\d{3,4}-)|\d{3.4}-)?\d{7,8}
6国内电话号码(0511−4405222、021−87888822):\d3−\d8|\d4−\d77、身份证号:15或18位身份证:\d15|\d18
6
国
内
电
话
号
码
(
0511
−
4405222
、
021
−
87888822
)
:
\d
3
−
\d
8
|
\d
4
−
\d
7
7
、
身
份
证
号
:
15
或
18
位
身
份
证
:
\d
15
|
\d
18
15位身份证:
^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}
18位身份证:[1−9]\d5[1−9]\d3((0\d)|(1[0−2]))(([0|1|2]\d)|3[0−1])\d4
18
位
身
份
证
:
[
1
−
9
]
\d
5
[
1
−
9
]
\d
3
(
(
0
\d
)
|
(
1
[
0
−
2
]
)
)
(
(
[
0
|
1
|
2
]
\d
)
|
3
[
0
−
1
]
)
\d
4
8、 短身份证号码(数字、字母x结尾):
^([0-9]){7,18}(x|X)?
或\d8,18|[0−9x]8,18|[0−9X]8,18?
或
\d
8
,
18
|
[
0
−
9
x
]
8
,
18
|
[
0
−
9
X
]
8
,
18
?
9 、帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):
^[a-zA-Z][a-zA-Z0-9_]{4,15}
10、密码(以字母开头,长度在6 18之间,只能包含字母、数字和下划线):[a−zA−Z]\w5,17
10
、
密
码
(
以
字
母
开
头
,
长
度
在
6
18
之
间
,
只
能
包
含
字
母
、
数
字
和
下
划
线
)
:
[
a
−
z
A
−
Z
]
\w
5
,
17
11 、强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):
^(?=.\d)(?=.[a-z])(?=.*[A-Z]).{8,10}
12、日期格式:\d4−\d1,2−\d1,213、一年的12个月(01~09和1~12):(0?[1−9]|1[0−2])
12
、
日
期
格
式
:
\d
4
−
\d
1
,
2
−
\d
1
,
2
13
、
一
年
的
12
个
月
(
01
~
09
和
1
~
12
)
:
(
0
?
[
1
−
9
]
|
1
[
0
−
2
]
)
14 、一个月的31天(01~09和1~31):
^((0?[1-9])|((1|2)[0-9])|30|31)
15、钱的输入格式:16、1.有四种钱的表示形式我们可以接受:”10000.00”和“10,000.00”,和没有“分”的“10000”和“10,000”:[1−9][0−9]∗
15
、
钱
的
输
入
格
式
:
16
、
1.
有
四
种
钱
的
表
示
形
式
我
们
可
以
接
受
:
”
10000.00
”
和
“
10
,
000.00
”
,
和
没
有
“
分
”
的
“
10000
”
和
“
10
,
000
”
:
[
1
−
9
]
[
0
−
9
]
∗
17、 2.这表示任意一个不以0开头的数字,但是,这也意味着一个字符”0”不通过,所以我们采用下面的形式:
^(0|[1-9][0-9]*)
18、3.一个0或者一个不以0开头的数字.我们还可以允许开头有一个负号:(0|−?[1−9][0−9]∗)
18
、
3.
一
个
0
或
者
一
个
不
以
0
开
头
的
数
字
.
我
们
还
可
以
允
许
开
头
有
一
个
负
号
:
(
0
|
−
?
[
1
−
9
]
[
0
−
9
]
∗
)
19 、4.这表示一个0或者一个可能为负的开头不为0的数字.让用户以0开头好了.把负号的也去掉,因为钱总不能是负的吧.下面我们要加的是说明可能的小数部分:
^[0-9]+(.[0-9]+)?
20、5.必须说明的是,小数点后面至少应该有1位数,所以”10.”是不通过的,但是“10”和“10.2”是通过的:[0−9]+(.[0−9]2)?
20
、
5.
必
须
说
明
的
是
,
小
数
点
后
面
至
少
应
该
有
1
位
数
,
所
以
”
10.
”
是
不
通
过
的
,
但
是
“
10
”
和
“
10.2
”
是
通
过
的
:
[
0
−
9
]
+
(
.
[
0
−
9
]
2
)
?
21、 6.这样我们规定小数点后面必须有两位,如果你认为太苛刻了,可以这样:
^[0-9]+(.[0-9]{1,2})?
22、7.这样就允许用户只写一位小数.下面我们该考虑数字中的逗号了,我们可以这样:[0−9]1,3(,[0−9]3)∗(.[0−9]1,2)?
22
、
7.
这
样
就
允
许
用
户
只
写
一
位
小
数
.
下
面
我
们
该
考
虑
数
字
中
的
逗
号
了
,
我
们
可
以
这
样
:
[
0
−
9
]
1
,
3
(
,
[
0
−
9
]
3
)
∗
(
.
[
0
−
9
]
1
,
2
)
?
23 、8.1到3个数字,后面跟着任意个 逗号+3个数字,逗号成为可选,而不是必须:
^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?
24、备注:这就是最终结果了,别忘了”+”可以用”∗”替代如果你觉得空字符串也可以接受的话(奇怪,为什么?)最后,别忘了在用函数时去掉去掉那个反斜杠,一般的错误都在这里25、xml文件:([a−zA−Z]+−?)+[a−zA−Z0−9]+\.[x|X][m|M][l|L]
24
、
备
注
:
这
就
是
最
终
结
果
了
,
别
忘
了
”
+
”
可
以
用
”
∗
”
替
代
如
果
你
觉
得
空
字
符
串
也
可
以
接
受
的
话
(
奇
怪
,
为
什
么
?
)
最
后
,
别
忘
了
在
用
函
数
时
去
掉
去
掉
那
个
反
斜
杠
,
一
般
的
错
误
都
在
这
里
25
、
x
m
l
文
件
:
(
[
a
−
z
A
−
Z
]
+
−
?
)
+
[
a
−
z
A
−
Z
0
−
9
]
+
\.
[
x
|
X
]
[
m
|
M
]
[
l
|
L
]
26 、中文字符的正则表达式:
[\u4e00-\u9fa5]
27 、双字节字符:
[^\x00-\xff]
(包括汉字在内,可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1))
28 、空白行的正则表达式:\n\s*\r (可以用来删除空白行)
29 、HTML标记的正则表达式:
<(\S*?)[^>]>.?