|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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比起来简直弱爆了! |
|