分类: 系统运维
2010-05-28 12:49:34
在某些网站注册时,要求用户输入一定长度的用户名、密码和E-mail等。网站对用户名长度的检测和E-mail格式的检测就属于表单递交的合法性检测的范围。表单递交的合法性检测还包括输入信息是否包含某些字符、是否全是数字、是否全是字母等。下面定义了几个合法性检测的过程。
不允许包含指定字符的检测:
<%
Function Validate(str) 'str为要检测的字符串
Validate = True '初始化
invalid = " " '非法字符为空,也可以写为其他字符
if InStr(str,invalid)>0 Then 'str字符串中存在invalid字符
Validate = False
End If
End Function
%>
只能输入数字的检测可以使用IsNumeric()函数来实现。
只能输入字母的检测:
<%
Function CheckLetter(str) 'str为要检测的字符串
CheckLetter = True '初始化
Letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" '初始化
for i=1 to len(str) 'len()函数返回字符串长度
'Mid(str,i,1) 返回字符串str第i个字符,UCase()函数将该字符转换为大写形式
checkchar = UCase(Mid(str,i,1))
If (InStr(Letters,checkchar)<=0) Then 'checkchar在Letters中不存在
CheckLetter = False
Exit Function '跳出Function过程
End If
Next '结束For循环
End Function
%>
E-mail格式的合法性检测:
<%
Function IsValidEmail(email) '定义过程
Dim names, name, i, c
IsValidEmail = TRUE '初始化
'使用@字符将email字符串分成几个子字符串并保存在names数组中
names = Split(email, "@")
'Ubound()函数返回数组names的最大下标,Ubound(names)<>1表明email字符串中存在
'的@字符并不是一个,所以email不是有效的邮件地址格式
If UBound(names) <> 1 Then
IsValidEmail = FALSE
Exit Function '跳出Function过程
End If
For Each name in names '数组names中的每一个元素
If Len(name) <= 0 Then '字符串name内字符的数目
IsValidEmail = FALSE
Exit Function '跳出Function过程
End If
For i = 1 To Len(name) 'For循环
'Mid(name,i,1) 返回字符串name内第i个字符,LCase()函数将该字符转换成小写形式
c = LCase(Mid(name, i, 1))
'InStr()函数返回某字符串在另一字符串中第一次出现的位置。
'InStr("abcdefghijklmnopqrstuvwxyz_-.", c) <= 0表明字符c不在字符
'串"abcdefghijklmnopqrstuvwxyz_-."中。IsNumeric(c)判断字符c是否为数字
If InStr("abcdefghijklmnopqrstuvwxyz_-.", c) <= 0 _
AND NOT IsNumeric(c) Then '不支持中文格式地址
IsValidEmail = FALSE
Exit Function '跳出Function过程
End If
Next '结束For to循环
'left(name,1)返回字符串name最左边一个字符。Right(name,1)返回字符串name最右边一个字符
If Left(name, 1) = "." or Right(name, 1) = "." Then
IsValidEmail = FALSE
Exit Function '跳出Function过程
End If
Next '结束For each循环
'email字符串中@右边部分不包含字符"."
If InStr(names(1), ".") <= 0 Then
IsValidEmail = FALSE
Exit Function
End If
'InStrRev()函数返回某字符串在另一个字符串中出现的从结尾计起的位置
'InStrRev(names(1), ".")得到字符"."在字符串names(1)中从结尾计起的位置
i = Len(names(1)) - InStrRev(names(1), ".")
'电子邮件最后一般为cn或com,长度为2或3
If i <> 2 AND i <> 3 Then
IsValidEmail = FALSE
Exit Function
End If
If InStr(email, "..") > 0 Then 'email中存在字符串".."
IsValidEmail = FALSE
End If
End Function
%>
---------------------
表单递交合法性检测-只接受数字
如下代码加入HTML的区:
如下代码加入HTML的区,表单递交部分:
注意:表单的名字和文本框的名字要保持前后一样。
-----------------
表单递交合法性检测-只允许填写字母
表单递交合法性检测-只允许填写字母 由吾搜网06月28日自收集后精心整理,欢迎阅览!
吾搜网感谢《表单递交合法性检测-只允许填写字母 》教程原编写站长吾搜网整理,ASP编程教程的完善源自于你们无私的共享!
--------------------------------
这个可以写小数
"
这个只能写数字
"