ASP.NET中如何使用前台和后台验证

来源:互联网 发布:淘宝新手开店一本通 编辑:程序博客网 时间:2024/05/18 02:09

最近自学ASP.NET中,遇到一些很基础的问题先记下来,以后也可以复习一下。

刚看了篇文章,讲了后台验证的必要性(《为什么不能只用前台js验证[必须结合后台验证]》  原文博客:http://www.52rs.net/ArticleView.aspx?gID=ac085c49-339b-4315-9447-98e78ac64ae3),既然有了后台验证,为什么还要进行前台验证,这样做不是让程序更复杂了?这个问题先放着,待深入学习之后慢慢了解。

开始进入正题。

 

前台一般用js验证,比如验证表单的数据:

 

<script  type="text/javascript">
        function checkForm()
        {
            var _uid=document.getElementById("<%=txt_Id.ClientID %>").value;       
            var _upwd=document.getElementById("<%=txt_Pwd.ClientID %>").value;         
            var _upwdSure=document.getElementById("<%=txt_Pwd_Sure.ClientID %>").value;
            var _uemail=document.getElementById("<%=txt_Email.ClientID %>").value;
           
            if(_uid =="")
            {
                alert("账号不能为空!");
                return false;
            }
            //验证密码与确认密码是否一致
            if (_upwd != _upwdSure) {
                alert("密码与确认密码不一致");
                return false;

            }
            //验证密码 这里的正则表达式的判断方法跟c#不一样 请注意:/正则表达式 /g   g表示全部查找
            var reg = /^[a-zA-Z0-9]{6,20}$/g;
            if (!reg.test(_upwd))
             {
                alert("密码长度必须大于6个字符小于20个字符,只能为英语字、数字,例如:snsn2003等");
                return false;
            }
            //验证电子邮件
            reg = //w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*/g;
            if (!reg.test(_uemail))
            {
            alert("请输入有效的邮件地址");
                return false;
            }
            return true;
        }
    </script>

 

这段代码写在<head>里,并在相应事件里加上<OnClientClick="return checkForm()">。这里要说明一下,OnClientClick=""指的是客户端的前台验证方法,后台验证使用onclick="",比如:<asp:Button runat="server" onclick="后台方法" onClientClick="reutrn 前台方法()"/>。前台方法必须返回一个true或者false。true会继续执行后台代码;false不会继续执行后台代码。此方法在ff和IE7中测试通过,还有人说ie6不支持此方法,要写成onClientClick="event.returnValue=true"这样才可以,这个没试过,也是从网上看到的,先记在这里,以备日后查看。

 

后台验证也大同小异:

 

            //从前台获取值
            string uid = txt_Id.Text;
            string upwd = txt_Pwd.Text;
            string uemail = txt_Email.Text;
            string upwdSure = txt_Pwd_Sure.Text;

            //--------------------------------------------------------开始验证
            //验证输入是否完整
            if (uid.Length == 0 || upwd.Length == 0 || uemail.Length == 0 || upwdSure.Length==0)
            {
                Response.Write("<script language='JavaScript'>alert('输入不完整')</script>");
                return;
            }
            //验证密码与确认密码是否一致
            if (!upwd.Equals(upwdSure))
            {
                Response.Write("<script language='JavaScript'>alert('后台验证:密码与确认密码不一致')</script>");
                return;
            }
            //验证电子邮件
            if (!Regex.IsMatch(uemail, @"/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*"))
            {
                Response.Write("<script language='JavaScript'>alert('请输入有效的邮件地址')</script>");
                return;
            }
            //--------------------------------------------------------验证结束

 

前后台的验证方法介绍完了,这个例子里面并没有实现图片验证码的功能,所以没有图片验证码的验证,其方法以后会补充。

希望大家共同学习!

加油!