ASP网页编程之表单递交正当性检测-日期
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==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比起来简直弱爆了! 代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。 先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。 运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。 那么,ASP.Net有哪些改进呢? 多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。 Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write 我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
页:
[1]