仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 436|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网页编程之表单递交正当性检测-日期

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-16 22:34:10 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
ASP脚本是采用明文(plaintext)方式来编写的。<html>
<head>
<scriptLanguage="JavaScript">
<!--
functiontestKey(e){
chars="0123456789/";
e=window.event;
if(chars.indexOf(String.fromCharCode(e.keyCode))==-1)window.event.keyCode=0;
};
functionvalDate(M,D,Y){
Months=newArray(31,28,31,30,31,30,31,31,30,31,30,31);
Leap=false;

if((Y%4==0)&&((Y%100!=0)||(Y%400==0)))
Leap=true;
if((D<1)||(D>31)||(M<1)||(M>12)||(Y<0))
return(false);
if((D>Months[M-1])&&!((M==2)&&(D>28)))
return(false);
if(!(Leap)&&(M==2)&&(D>28))
return(false);
if((Leap)&&(M==2)&&(D>29))
return(false);
};

functionformatDate(dateForm){
cDate=dateForm.value;
dSize=cDate.length;
sCount=0;

if(document.Form1.Date.value==""){
alert("请输出日期!");
returnfalse;
}

if(cDate==)return;

for(vari=0;i<dSize;i++)
(cDate.substr(i,1)=="/")?sCount++:sCount;
if(sCount!=2){
alert("输出的日期格局必需是
月/日/年");
dateForm.select();
return(false);
};
//检测输出的年份是2位数仍是4位数;
ySize=cDate.substring(cDate.lastIndexOf("/")+1,dSize).length
if(ySize<2||ySize>4||ySize==3){
alert(您输出的日期毛病!);
dateForm.select();
returnfalse;
};
//将输出的日期字符串分开成3部分(Month,Day&Year)
idxBarI=cDate.indexOf("/");
idxBarII=cDate.lastIndexOf("/");
strM=cDate.substring(0,idxBarI);
strD=cDate.substring(idxBarI+1,idxBarII);
strY=cDate.substring(idxBarII+1,dSize);

strM=(strM.length<2?0+strM:strM);
strD=(strD.length<2?0+strD:strD);
if(strY.length==2)
strY=(strY>50?19+strY:20+strY);
dateForm.value=strM+/+strD+/+strY;

ok=valDate(strM,strD,strY);
if(ok==false){
alert("您输出的日期毛病!");
dateForm.select();
returnfalse;
};
};


-->
</script>

<title>日期正当性检测</title>
</head>
<bodybgcolor="#FFFFFF">


<formname="Form1"method="post"action="">
输出准确的日期(月/日/年):
<inputtype=textmaxlength=10name="Date"size=10value="">

</form>
</body>
</html>

申明:此剧本的用处是对照周全地检测输出日期的正当性,除做非空检测外,另有效地检测了分歧年代日期的正当性成绩。好比在不是闰年的2月输出了29日等。黄色代码与剧本的检测有关,感化是页面读出页面后光标停止在日期文本框内。能够不要。

注重:(1)<Form>标签中表单的名字Form1和日期文本框的名字Data(减轻字体)与剧本是有关的,也就是说你假如修改了它们的名字,但凡在剧本中援用From1和Data的部分都要修正。切切!!!

(2)Javascript是巨细写敏感的,以是注重巨细写的区分和分歧性准绳。

(3)此剧本应当与CGI/ASP等服务器真个递交处置程序共同利用,用于客户真个正当性检测。本例未将submit按钮作上往,你所处置的表单中大概包含更多的内容。

这里仅仅供应了一个剧本思绪,你纷歧顶非要全体照搬剧本,能够仅仅取剧本的一部分利用(次要是算法)。asp,你就只能等着微软给你解决,它不乐意你就只好悲催。而且asp跑在windows服务器上,windows服务器跟linux比起来简直弱爆了!
愤怒的大鸟 该用户已被删除
9#
发表于 2015-3-21 09:23:06 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
金色的骷髅 该用户已被删除
8#
发表于 2015-3-14 13:24:51 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
小魔女 该用户已被删除
7#
发表于 2015-3-7 05:31:57 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
6#
 楼主| 发表于 2015-2-23 01:55:00 | 只看该作者
那么,ASP.Net有哪些改进呢?
山那边是海 该用户已被删除
5#
发表于 2015-2-7 19:11:20 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
小妖女 该用户已被删除
地板
发表于 2015-2-2 11:32:27 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
飘灵儿 该用户已被删除
板凳
发表于 2015-1-24 17:41:54 来自手机 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-19 16:53:45 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-25 15:14

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表