上QQ阅读APP看书,第一时间看更新
6.4 应用正则表达式对用户注册信息进行验证
【例6.6】通过正则表达式对用户注册信息的合理性进行判断,对用户输入的邮编、电话号码、邮箱地址和网址的格式进行判断。本例中应用正则表达式和JavaScript脚本,判断用户输入信息的格式是否正确。实例代码如下:(实例位置:光盘\TM\sl\6\6)
首先,在index.php页面中通过Script脚本调用js脚本文件check.js,创建form表单,实现会员注册信息的提交,并应用onSubmit事件调用chkreg()方法对表单元素中的数据进行验证,将数据提交到index_ok.php文件中。index.php的关键代码如下:
<script src="js/check.js"></script> <form name="reg_check"method="post"action="index_ok.php"onSubmit="return chkreg(reg check, 'all')"> <table width="550" height="270" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td height="30"><div align="right">邮政编码:</div></td> <td height="30" colspan="2" align="left"> <input type="text"name="postalcode"size="20"onBlur="chkreg(reg check,2)"> <div id="check postalcode"style="color:#F1B000"></div> </td> </tr> <tr> <td height="30"><div align="right">E-mail:</div></td> <td height="30" colspan="2" align="left"> <input type="text" name="email" size="20" onBlur="chkreg(reg_check,4)"> <font color="#999999">请务必正确填写您的邮箱</font> <div id="check email"style="color:#F1B000"></div> </td> </tr> <tr> <td height="30" align="right">固定电话:</td> <td height="30" colspan="2" align="left"> <input type="text"name="gtel"size="20" onBlur="chkreg(reg check,6)"> <font color="#999999"><div id="check gtel"style="color:#F1B000"></div></font></td> </tr> <tr> <td height="30"><div align="right">移动电话:</div></td> <td height="30" colspan="2" align="left"> <input type="text"name="mtel"size="20" onBlur="chkreg(reg check,5)"> <div id="check_mtel" style="color:#F1B000"></div></td> </tr> <tr> <td width="100"height="30"><input type="image" src="images/bg_09.jpg"></td> <td width="340"><img src="images/bg_11.jpg" width="56" height="30" onClick="reg_check.reset()" style="cursor:hand"/></td> </tr> </table> </form>
在check.js脚本文件中,创建自定义方法,应用正则表达式对会员注册的电话号码和邮箱进行验证。其关键代码如下:
function checkregtel(regtel){ var str=regtel; var Expression=/^13(\d{9})$|^18(\d{9})$|^15(\d{9})$/; //验证手机号码 var objExp=new RegExp(Expression); if(objExp.test(str)==true){ return true; }else{ return false; } } function checkregtels(regtels){ var str=regtels; var Expression=/^(\d{3}-)(\d{8})$|^(\d{4}-)(\d{7})$|^(\d{4}-)(\d{8})$/; //验证座机号码 var objExp=new RegExp(Expression); if(objExp.test(str)==true){ return true; }else{ return false; } } function checkregemail(emails){ var str=emails; var Expression=/\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/; //验证邮箱地址 var objExp=new RegExp(Expression); if(objExp.test(str)==true){ return true; }else{ return false; } }
运行结果如图6.3所示。
图6.3 应用正则表达式对用户注册信息进行验证
注意
在本例中通过正则表达式对表单提交的数据进行验证,在JavaScript脚本中,应用onBlur事件调用对应的方法对表单提交的数据直接进行验证,并通过div标签返回结果。