服务器之家

服务器之家 > 正文

Ajax和PHP正则表达式验证表单及验证码

时间:2021-03-03 16:30     来源/作者:岛岛狗

模式匹配符:

\:转义字符 例如:\b转义了b

^:正则表达式开始符号

$:正则表达式结束符号

*:匹配前面的字符出现0次或者n次

+:匹配前面的字符出现1次或者n次

?:匹配前面的字符出现0次或者1次

.:匹配除了换行符以外的所有单个字符

|:或者的意思,例如x|y 匹配x或者y

{n}:匹配前面的n个字符

{n,m}:匹配至少n个最多m个前面字符

[xyz]:匹配中括号里的任意一个字符

[^xyz]:匹配除了中括号里的任意一个字符等价于[0-9]

\w:匹配任意一个数字或字母或下划线 等价于[A-Za-z0-9_]

\d:匹配任意一个0--9之间的数字

模式修正符:

i:忽略大小写

常用正则表达式举例:

//用户名由6-18位的字母数字下划线组成,不能由数字开头

var r_name=/^[a-z]\w{5,17}$/i

//密码长度不能少于六位

var r_pwd=/^\w{6,}$/

//所有的通用邮箱地址

var r_eamil=/^\w+@\w+(\.)\w+$/

//匹配一个QQ邮箱地址

//861745122@qq.com
var r_qq_email=/^\d{5,}@qq(\.)com$/

//匹配一个163的邮箱地址

var r_163_email=/^\w+@163(\.)com$/

//匹配一个后缀名可能是.com|.net|.cn|.edu

var email=/^\w+@\w+(\.)com|net|cn|edu$/

//要求输入有效的年龄段

var r_age=/^\d{1,2}$/

//if(age>=18&&age《=100)

//验证手机号:11位 13 15 18开头

var r_tel=/^1[3,5,8]\d{9}$/

//验证身份证号 18位或者17位加一个X

var r_s=/^\d{18}|\d{17}x$/i

//验证中文 var reg=/^[\u4e00-\u9fa5]{2,17}$/

//php

$reg = "/^[\x{4e00}-\x{9fa5}]$/u"

?
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
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
<span style="font-size:24px;">下面是一个例子:</span>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title></title>
<script type="text/javascript" src="public.js"></script>
</head>
<body onload="yanzheng(this)">
<form method="post" action="info_2.php" onsubmit="return check_all()">
<table>
<tr>
<td colspan="2">账户基本信息</td>
</tr>
<tr>
<td>登录账号:</td>
<td><input type="text" name="zhanghao" onblur="check_zhanghao(this)"><span name="sp1"></span></td>
</tr>
<tr>
<td>昵称:</td>
<td><input type="text" name="nicheng" onblur="check_nicheng(this)"><span name="sp2"></span></td>
</tr>
<tr>
<td>性别:</td>
<td><input type="radio" name="sex" value="男"onclick="check_sex()">男
<input type="radio" name="sex" value="女"onclick="check_sex()">女
<span id="sp3"></span></td>
</tr>
<tr>
<td colspan="2">账户安全设置</td>
</tr>
<tr>
<td>登录密码:</td>
<td><input type="password" name="pwd" onblur="check_pwd(this)"><span name="sp4"></span></td>
</tr>
<tr>
<td>确认登录密码:</td>
<td><input type="password" name="repwd" onblur="check_repwd(this)"><span name="sp5"></span></td>
</tr>
<tr>
<td>真实姓名:</td>
<td><input type="text" name="username" onblur="check_username(this)"><span name="sp6"></span></td>
</tr>
<tr>
<td>身份证号:</td>
<td><input type="text" name="idcard" onblur="check_idcard(this)"><span name="sp7"></span></td>
</tr>
<tr>
<td>邮箱地址:</td>
<td><input type="text" name="email" onblur="check_email(this)"><span name="sp8"></span></td>
</tr>
<tr>
<td>验证码</td>
<td><input type="text" id="number" onblur="check_number()">
<input type="button" onclick="yanzheng()" value="获取验证码" >
<span id="sp10"></span>
<span id="sp9"></span>
</td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="免费注册"></td>
</tr>
</table>
</form>
<script type="text/javascript">
//验证登录账号
function check_zhanghao(obj){
var sp1=$('sp1');
if(obj.value==''){
sp1.innerHTML='登录账号不能为空';
sp1.style.color='red';
return false;
}else{
var reg=/^\w{5,10}$/i;
if(reg.test(obj.value)){
sp1.innerHTML='正确';
sp1.style.color='green';
return true;
}else{
sp1.innerHTML='登录账号5-10字符';
sp1.style.color='red';
return false;
}
}return true;
}
//验证昵称
function check_nicheng(obj){
var sp2=$('sp2');
if(obj.value==''){
sp2.innerHTML='登录账号不能为空';
sp2.style.color='red';
return false;
}else{
var reg=/^\w{5,10}$/i;
if(reg.test(obj.value)){
sp2.innerHTML='正确';
sp2.style.color='green';
return true;
}else{
sp2.innerHTML='昵称5-10字符';
sp2.style.color='red';
return false;
}
}return true;
}
//验证密码
function check_pwd(obj2){
var sp4=$('sp4');
if(obj2.value==''){
sp4.innerHTML='密码不能为空';
sp4.style.color='red';
return false;
}else{
var reg=/^\w{6,}$/;
if(reg.test(obj2.value)){
sp4.innerHTML='正确';
sp4.style.color='green';
return true;
}else{
sp4.innerHTML='格式不正确';
sp4.style.color='red';
return false;
}
}return true;
}
//验证确认密码
function check_repwd(obj3){
var sp5=$('sp5');
var pwd=$('pwd');
var repwd=$('repwd');
if(obj3.value==''){
sp5.innerHTML='密码不能为空';
sp5.style.color='red';
return false;
}else{
if(obj3.value==pwd.value){
sp5.innerHTML='正确';
sp5.style.color='green';
return true;
}else{
sp5.innerHTML='确认密码和密码不一致';
sp5.style.color='red';
return false;
}
}return true;
}
//验证性别
num2=0;
function check_sex(){
var sex=document.getElementsByName('sex');
// var sp4=document.getElementById('sp4')
for(var i=0;i<sex.length;i++){
if(sex[i].checked==true){
num2=num2+1;
}
}
//alert(num2);
if(num2!=0){
sp3.innerHTML='√';
sp3.style.color='green';
return true;
}else{
sp3.innerHTML='性别不能为空';
sp3.style.color='red';
return false;
}
}
//验证姓名
function check_username(obj){
var sp6=$('sp6');
if(obj.value==""){
sp6.innerHTML='用户名不能为空';
sp6.style.color='red';
return false;
}else{
var reg=/^[\u4e00-\u9fa5]{2,3}$/;
if(!reg.test(obj.value)){
sp6.innerHTML='用户名应该2-3个汉字';
sp6.style.color='red';
return false;
}else{
sp6.innerHTML='√';
sp6.style.color='green';
return true;
}
}
return true;
}
//验证邮箱
function check_email(obj5){
var sp8=$('sp8');
if(obj5.value==''){
sp8.innerHTML='邮箱不能为空';
sp8.style.color='red';
return false;
}else{
var reg=/^(\w+@\w+(\.)com|net|cn)$/;
if(reg.test(obj5.value)){
sp8.innerHTML='正确';
sp8.style.color='green';
return true;
}else{
sp8.innerHTML='格式不正确';
sp8.style.color='red';
return false;
}return true;
}
}
//验证身份证号
function check_idcard(obj9){
var sp7=$('sp7');
if(obj9.value==''){
sp7.innerHTML='身份证号不能为空';
sp7.style.color='red';
return false;
}else{
var reg=/^\d{18}|\d{17}x$/i;
if(reg.test(obj9.value)){
sp7.innerHTML='正确';
sp7.style.color='green';
return true;
}else{
sp7.innerHTML='格式不正确';
sp7.style.color='red';
return false;
}return true;
}
}
//生成验证码
function yanzheng(){
var sp9=document.getElementById('sp9');
var str1="";
for(var i=1;i<=4;i++){
str1=str1+parseInt(Math.random()*10);
sp9.innerHTML=str1;
}
}
//验证验证码
function check_number(){
var number=document.getElementById('number').value
var sp10=document.getElementById('sp10')
var sp9=document.getElementById('sp9');
if(number==""){
sp10.innerHTML='验证码不能为空';
sp10.style.color='red';
return false;
}else{
if(number!=sp9.innerHTML){
sp10.innerHTML='验证码和你写的不一致';
sp10.style.color='red';
return false;
} else{
sp10.innerHTML='√';
sp10.style.color='green';
return true;}
return true;
}
}
function check_all(){
if(check_zhanghao($('zhanghao')) & check_nicheng($('nicheng')) & check_pwd($('pwd')) & check_repwd($('repwd')) & check_sex()& check_username($('username')) & check_idcard($('idcard')) &check_email($('email')) & check_number() ){
return true;}
else{ return false;}
}
</script>
</body>
</html>

php正则验证

?
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
<?php
header("content-type:text/html;charset=utf8");
//var_dump($_POST);die;
//array(5) { ["uname"]=> string(9) "刘伟超" ["uqq"]=> string(10) "1111111111" ["uemail"]=> string(12) "66555@qq.com" ["utel"]=> string(11) "15863162320" ["uinfo"]=> string(48) "地方开始放假开放活动健康的话概括" }
empty($_POST["uname"])?$uname="":$uname=$_POST["uname"];
empty($_POST["uemail"])?$uemail="":$uemail=$_POST["uemail"];
empty($_POST["utel"])?$utel="":$utel=$_POST["utel"];
empty($_POST["uqq"])?$uqq="":$uqq=$_POST["uqq"];
empty($_POST["uinfo"])?$uinfo="":$uinfo=$_POST["uinfo"];
//验证姓名
$reg="/^[\x{4e00}-\x{9fa5}]{2,3}$/u";
if(!preg_match($reg,$uname)){
echo "用户名应该2-3个汉字";die;
//header("refresh:1;url=form.html");
}
//验证邮箱
$reg="/^(\w+@\w+(\.)com|net|cn)$/";
if(!preg_match($reg,$uemail)){
echo "邮箱必须含有@,且以com结尾";header("refresh:1;url=form.html"); die;
}
//验证座机号
$reg="/^\d{11}$/";
if(!preg_match($reg,$utel)){
echo "座机号以010-22222222格式";header("refresh:1;url=form.html"); die;
}
//验证QQ号
$reg="/^\d{5,11}$/";
if(!preg_match($reg,$uqq)){
echo "qq必须是5-11位纯数字";header("refresh:1;url=form.html"); die;
}
//验证简介
/*$reg="/^[\x{4e00}-\x{9fa5}]{10,100}\W+/u";
if(!preg_match($reg,$uinfo)){
echo "简介应该10-100个汉字";die;
//header("refresh:1;url=form.html");
}
*/
//连接数据库
$link=mysql_connect('127.0.0.1','root','root')or die("连接失败");
//选择数据库
mysql_select_db('kaoshi',$link);
//设置字符集
mysql_query("set names utf8");
//写sql语句
$sql="insert into zhuce(c_name,c_qq,c_email,c_tel,c_info) values('$uname','$uqq','$uemail','$utel','$uinfo')";
//echo $sql;die;
$rel=mysql_query($sql);
if($rel){
echo "注册成功";header("refresh:1;url=show.php");
}else{echo "注册失败";header("refresh:1;url=form.html");}
?>

以上所述是小编给大家介绍的Ajax和PHP正则表达式验证表单及验证码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

原文链接:http://blog.csdn.net/lwc863481702/article/details/52640008

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部