【转载】前端常见正则表达式

前言

记录一下前端常用正则表达式,实际工作中要根据自己的项目提取合适的去使用

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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
let regExp = {
// 数字正则
isNumber: function(str) {
let reg = /^-?\d*\.?\d+$/;
if (reg.test(str)) {
return true
} else {
return false
}
},
// 正数正则
isPosNumber: function(str) {
let reg = /^\d*\.?\d+$/;
if (reg.test(str)) {
return true
} else {
return false
}
},
// 负数正则
isNegNumber: function(str) {
let reg = /^-\d*\.?\d+$/;
if (reg.test(str)) {
return true
} else {
return false
}
},
// 整数正则
isInteger: function(str) {
let reg = /^-?\d+$/;
if (reg.test(str)) {
return true
} else {
return false
}
},
// 正整数正则
isPosInteger: function(str) {
let reg = /^\d+$/;
if (reg.test(str)) {
return true
} else {
return false
}
},
// 负整数正则
isNegInteger: function(str) {
let reg = /^-\d+$/;
if (reg.test(str)) {
return true
} else {
return false
}
},
// 用户名正则
isUserName: function(str) {
// 4到16位(字母,数字,下划线,减号)
let reg = /^[a-zA-Z0-9_-]{4,16}$/;
if (reg.test(str)) {
return true
} else {
return false
}
},
// 包含中文正则
isChinese: function(str) {
let reg = /[\u4E00-\u9FA5]/;
if (reg.test(str)) {
return true
} else {
return false
}
},
// 密码正则
isPassword: function(str) {
// 以字母开头,长度在6~18之间,只能包含字母、数字和下划线
let reg = /^[a-zA-Z]\w{5,17}$/;
if (reg.test(str)) {
return true
} else {
return false
}
},
// 邮箱正则
isEmail: function(str) {
let reg = /^([A-Za-z0-9_\-\.\u4e00-\u9fa5])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,8})$/;
if (reg.test(str)) {
return true
} else {
return false
}
},
// 手机号正则
isPhone: function(str) {
// 移动号段:134 135 136 137 138 139 147 148 150 151 152 157 158 159 172 178 182 183 184 187 188 198
// 联通号段:130 131 132 145 146 155 156 166 171 175 176 185 186
// 电信号段:133 149 153 173 174 177 180 181 189 199
// 虚拟运营商:170
let reg = /^(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[8-9])[0-9]{8}$/;
if (reg.test(str)) {
return true
} else {
return false
}
},
// 固定电话正则
isTelephone: function(str) {
let reg = /^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}$/;
if (reg.test(str)) {
return true
} else {
return false
}
},
// 第二代身份证号正则
isIDCard: function(str) {
let reg = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
if (reg.test(str)) {
return true
} else {
return false
}
},
// QQ号正则
isQQNumber: function(str) {
let reg = /^[1-9][0-9]{4,10}$/;
if (reg.test(str)) {
return true
} else {
return false
}
},
// 微信号正则
isWeChatNumber: function(str) {
// 6至20位,以字母开头,字母,数字,减号,下划线
let reg = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;
if (reg.test(str)) {
return true
} else {
return false
}
},
// 特殊字符正则
isSpeNumber: function(str) {
let reg = /["'<>%;)(&+]+-!!@#$~/;
if (reg.test(str)) {
return true
} else {
return false
}
},
// IP地址正则
isIP: function(str) {
let reg = /^\d+\.\d+\.\d+\.\d+$/;
if (reg.test(str)) {
return true
} else {
return false
}
},
// 邮政编码正则
isPostCode: function(str) {
let reg = /^[1-9]{1}(\d+){5}$/;
if (reg.test(str)) {
return true
} else {
return false
}
}
};

附上我比较喜欢用的一个正则图形化网站,有兴趣的可以试试:正则图形化

参考资料:
如何判断用户浏览器以及一些前端常用的正则表单验证
前端开发中的 正则表达式 及常用正则表达式大全