PHP从入门到精通(第4版)(软件开发视频大讲堂)
上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">&nbsp;
                    <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">&nbsp;
                <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">&nbsp;
                    <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">&nbsp;
                      <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标签返回结果。