最近自学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=""指的是客户端的前台验证方法,后台验证使用οnclick="",比如:<asp:Button runat="server" οnclick="后台方法" 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;
}
//--------------------------------------------------------验证结束
前后台的验证方法介绍完了,这个例子里面并没有实现图片验证码的功能,所以没有图片验证码的验证,其方法以后会补充。
希望大家共同学习!
加油!