Ajax和PHP正则表达式验证表单及验证码
2018-09-07 17:40
模式匹配符:
\:转义字符 例如:\b转义了b
^:正则表达式开始符号
$:正则表达式结束符号
*:匹配前面的字符出现0次或者n次
+:匹配前面的字符出现1次或者n次
?:匹配前面的字符出现0次或者1次
.:匹配除了换行符以外的所有单个字符
:或者的意思,例如xy 匹配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邮箱地址
var r_qq_email=/^\d{5,}@qq(\.)com$/
//匹配一个163的邮箱地址
var r_163_email=/^\w+@163(\.)com$/
//匹配一个后缀名可能是edu
var email=/^\w+@\w+(\.)comnetcnedu$/
//要求输入有效的年龄段
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
<span style=font-size:24px;>下面是一个例子:</span> <!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN 账户基本信息</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> //验证登录账号erHTML=登录账号不能为空or=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+(\.)comnetcn)$/; 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正则验证
<?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+(\.)comnetcn)$/; 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正则表达式验证表单及验证码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!