Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9163649
  • 博文数量: 187
  • 博客积分: 7517
  • 博客等级: 少将
  • 技术积分: 1981
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-20 18:51
文章分类

全部博文(187)

文章存档

2015年(3)

2013年(4)

2012年(20)

2011年(2)

2010年(96)

2009年(14)

2008年(47)

2007年(1)

我的朋友

分类: 系统运维

2010-05-28 12:49:34

表单递交合法性检测-日期




日期合法性检测





输入正确的日期(月/日/年):






说明:此脚本的用途是比较全面地检测输入日期的合法性,除了做非空检测外,还有效地检测了不同年月日期的合法性问题。比如在不是闰年的2月输入了29日等。黄色代码与脚本的检测无关,作用是页面读出页面后光标停留在日期文本框内。可以不要。

注意:(1)
标签中表单的名字FORM1和日期文本框的名字DATA(加重字体)与脚本是有关的,也就是说你如果改动了它们的名字,凡是在脚本中引用FROM1和DATA的部分都要修改。切切!!!

(2)JAVASCRIPT是大小写敏感的,所以注意大小写的区别和一致性原则。

(3)此脚本应该与CGI/ASP等服务器端的递交处理程序配合使用,用于客户端的合法性检测。本例没有将SUBMIT按钮作上去,你所处理的表单中可能包括更多的内容。

这里仅仅提供了一个脚本思路,你不一顶非要全部照搬脚本,可以仅仅取脚本的一部分使用(主要是算法)。
 
--------------------------
 

12.1.4  表单递交的合法性检测

在某些网站注册时,要求用户输入一定长度的用户名、密码和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编程教程的完善源自于你们无私的共享!

 

--------------------------------

这个可以写小数
"

这个只能写数字
"

阅读(1177) | 评论(0) | 转发(0) |
0

上一篇:RS.OPEN SQL,CONN,A,B

下一篇:EFI Shell 命令参考

给主人留下些什么吧!~~