验证的种类:
1. 是否为空
使用ASP.NET自带的RequiredFieldValidator控件
<
asp:RequiredFieldValidator
ID
="CheckUserNotNull"
runat
="server"
ErrorMessage
="用户名不能为空"
ControlToValidate
="txtUserName"
Display
="Dynamic"
></
asp:RequiredFieldValidator
>
2. 字符长度
使用ASP.NET自带的RegularExpressionValidator控件.
<
asp:RegularExpressionValidator
ID
="CheckLength"
runat
="server"
ControlToValidate
="txtPassword"
Display
="Dynamic"
ErrorMessage
="密码不能少于六位"
ValidationExpression
="[0-9,a-z,A-Z,_,@,#,$,%,^,&,*]{6,20}"
></
asp:RegularExpressionValidator
>
<
asp:RegularExpressionValidator
id
="revTextBox1"
runat
="server"
ForeColor
="Red"
Display
="Dynamic"
ControlToValidate
="textBox1"
ValidationExpression
="(/w|/W){1,100}"
>
格式错误-只能输入不超过100个字符
</
asp:RegularExpressionValidator
>
3. 是否输入了中文
<
asp:RegularExpressionValidator
ID
="checkReq"
runat
="server"
ControlToValidate
="txtNumber"
Display
="Dynamic"
ForeColor
="Red"
ValidationExpression
="^[/u4e00-/u9fa5]{0,}$"
>
请输入汉字
</
asp:RegularExpressionValidator
>
4. 是否是数字
<
asp:RegularExpressionValidator
ID
="CheckIsNumber"
runat
="server"
ControlToValidate
="txtWebFlow"
Display
="Dynamic"
ErrorMessage
="网站流量只能填写数字"
ValidationExpression
="^[0-9]*[1-9][0-9]*$"
></
asp:RegularExpressionValidator
>
5. 只允许输入字母
<
asp:RegularExpressionValidator
ID
="checkReq"
runat
="server"
ControlToValidate
="txtNumber"
Display
="Dynamic"
ForeColor
="Red"
ValidationExpression
="[A-Za-z]+$"
>
请输入英文大小写字母
</
asp:RegularExpressionValidator
>
6. 是否是字母、数字、下划线
<
asp:RegularExpressionValidator
ID
="checkReq"
runat
="server"
ControlToValidate
="txtNumber"
Display
="Dynamic"
ForeColor
="Red"
ValidationExpression
="^/w+$"
>
请输入数字字母和下划线
</
asp:RegularExpressionValidator
>
7. 是否是正确的E-mail格式
<
asp:RegularExpressionValidator
ID
="CheckEmail"
runat
="server"
ControlToValidate
="txtContactMail"
Display
="Dynamic"
ErrorMessage
="电子邮箱不合法"
ValidationExpression
="/w+([-+.']/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*/s*"
></
asp:RegularExpressionValidator
>
8. 是否是正确的邮政编码格式
<
asp:RegularExpressionValidator
ID
="checkReq"
runat
="server"
ControlToValidate
="txtNumber"
Display
="Dynamic"
ForeColor
="Red"
ValidationExpression
="[1-9]/d{5}(?!/d)"
>
您输入的不是中国邮政编码
</
asp:RegularExpressionValidator
>
9. 是否是正确的电话号码格式
<
asp:RegularExpressionValidator
ID
="checkReq"
runat
="server"
ControlToValidate
="txtNumber"
Display
="Dynamic"
ForeColor
="Red"
ValidationExpression
="/d{3}-/d{8}|/d{4}-/d{7}"
>
您输入的电话号码格式错误
</
asp:RegularExpressionValidator
>
不涉及电话号码是否有效。如果有相关,需要后台配合。
10. 用户是否存在
前台:
<
html
xmlns
="http://www.w3.org/1999/xhtml"
>
<
head
id
="Head1"
runat
="server"
>
<
title
>
验证用户是否存在
</
title
>
<
script
>
function
CallServer(inputcontrol,context)
{
context.innerHTML
=
"
加载中
"
;
arg
=
inputcontrol.value;
<%=
ClientScript.GetCallbackEventReference(
this
,
"
arg
"
,
"
ReceiveServerData
"
,
"
context
"
)
%>
;
}
function
ReceiveServerData(result,context)
{
context.innerHTML
=
result;
}
</
script
>
</
head
>
<
body
>
<
form
id
="form1"
runat
="server"
>
请输入用户名:
<
asp:TextBox
ID
="txtEnter"
runat
="server"
onblur
="CallServer(txtEnter,lblShow);"
></
asp:TextBox
>
<
asp:Label
ID
="lblShow"
runat
="server"
Text
=""
></
asp:Label
>
</
form
>
</
body
>
</
html
>
后台:
public
partial
class
Callback_1 : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
{
private
string
result;
public
void
RaiseCallbackEvent(
string
eventArgument)
{
//
与数据库中用户列表匹配,看是否存在该用户
bool
IsExist
=
true
;
if
(eventArgument
==
"
test
"
)
{
IsExist
=
true
;
}
else
{
IsExist
=
false
;
}
if
(IsExist
==
true
)
{
result
=
"
用户已经存在,请重新输入用户名称.
"
;
}
else
{
result
=
"
用户暂时不存在,您可以使用.
"
;
}
}
public
string
GetCallbackResult()
{
return
result;
}
}
11.两次密码输入是否一致
<
asp:CompareValidator
ID
="CompareValidator1"
runat
="server"
ControlToCompare
="txtPassword"
ControlToValidate
="txtPassword1"
ErrorMessage
="密码不一致"
Display
="Dynamic"
></
asp:CompareValidator
>
12.身份证验证
<
asp:RegularExpressionValidator
ID
="checkReq"
runat
="server"
ControlToValidate
="txtNumber"
Display
="Dynamic"
ForeColor
="Red"
ValidationExpression
="/d{15}|/d{18}"
>
您输入正确的身份证号
</
asp:RegularExpressionValidator
>
13.手机号码验证
<
html
>
<
head
>
<
title
>
验证手机号
</
title
>
<
meta
http-equiv
="content-Type"
content
="text/html;charset=gb2312"
>
</
head
>
<
body
>
<!--
把下面代码加到<body>与</body>之间
-->
<
script
>
function
aa(obj)
{
if
(obj.length
!=
11
) alert(
"
这个手机号不存在!
"
);
else
if
(obj.substring(
0
,
2
)
!=
"
13
"
) alert(
"
这个手机号不存在!
"
);
else
if
(isNaN(obj)) alert(
"
这个手机号不存在!
"
);
else
alert(
"
这是个正确的手机号!
"
);
}
</
script
>
<
form
name
="codeN"
>
请输入手机号码:
<
input
type
="text"
name
="No"
><
input
type
="button"
value
="验证"
onclick
="aa(document.codeN.No.value)"
>
</
form
>
</
body
>
</
html
>
<
asp:RegularExpressionValidator
ID
="checkReq"
runat
="server"
ControlToValidate
="txtNumber"
Display
="Dynamic"
ForeColor
="Red"
ValidationExpression
="^(013|015|13|15)/d{9}$"
>
您输入正确的手机号码
</
asp:RegularExpressionValidator
>
如果需要一些特殊的字符验证,请查看我收集的正则表达式。
http://www.cnblogs.com/a311300/archive/2008/07/28/1254951.html#FeedBack
----------------------------------------------------------------
需要注意的问题:
1. 防注册机器人.使用随机验证码
2. 防文本框扩展操作:
不允许复制、剪切、粘贴
<
asp:TextBox ID
=
"
txtPassword
"
runat
=
"
server
"
MaxLength
=
"
20
"
oncopy
=
"
return false;
"
oncut
=
"
return false;
"
onpaste
=
"
return false;
"
TextMode
=
"
Password
"
Width
=
"
142px
"
></
asp:TextBox
>
3. 传参数相关的问题:需要对数据进行加密解密。
4. 防SQL注入:使用存储过程或者SqlParameter。
5. 将asp.net验证与ajaxControlToolKit结合使用:
<
asp:RequiredFieldValidator
ID
="RequiredFieldValidator1"
runat
="server"
ControlToValidate
="txtAdminName"
Display
="None"
ErrorMessage
="名称请不要为空"
></
asp:RequiredFieldValidator
>
<
cc1:ValidatorCalloutExtender
ID
="ValidatorCalloutExtender1"
runat
="server"
TargetControlID
="RequiredFieldValidator1"
></
cc1:ValidatorCalloutExtender
>
这样在出现空格时,会在txtAdminName文本框旁边出现动态提示。
6. 按回车键,光标移至下一个文本框:按文本框顺序设置TabIndex属性.
7.最后点击提交按钮.触发提交事件:在from中,设置DefaultButton值为提交按钮id.