|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
不得不提一下的是:.net是看到java红,而开发出来的工具。控件在b/s程序计划中,常常必要向一个输出框输出日期或工夫,并考证输出是不是无效。一般的考证办法是在提交的时分举行字符串考证,假如是正当的日期工夫则一般提交,不然作废提交并给堕落误信息。大概,将日期工夫的输出酿成几个下拉列表框,由用户选择年代日时分秒。
这里给出一个用javascript编写的日期工夫输出考证剧本。这个剧本可使一个一般的输出框酿成日期工夫输出框。你只能在这个输出框里输出日期工夫格局的字符串,而不同意你输出任何其他的字符。当你输出不法字符时,它并非不卖力任地弹堕落误对话框,而是完整过滤失落你的输出以包管你输出框的内容相对是正当的日期工夫格局。
现实上,你能够向这个剧本中增加其他考证函数,让这个剧本能够把持别的范例格局的输出,比方:数字、电子邮件、用户ID等等。
代码以下:
<script>
functionisTime(str){
vara=str.match(/^(d{0,2}):(d{0,2}):(d{0,2})$/);
if(a==null)returnfalse;
if(a[1]>=24||a[2]>=60||a[3]>=60)returnfalse;
returntrue;
}
functionisDateTime(str){
vara=str.match(/^(d{0,4})-(d{0,2})-(d{0,2})(d{0,2}):(d{0,2}):(d{0,2})$/);
if(a==null)returnfalse;
if(a[2]>=13||a[3]>=32||a[4]>=24||a[5]>=60||a[6]>=60)returnfalse;
returntrue;
}
functionisDate(str){
vara=str.match(/^(d{0,4})-(d{0,2})-(d{0,2})$/);
if(a==null)returnfalse;
if(a[2]>=13||a[3]>=32||a[4]>=24)returnfalse;
returntrue;
}
functionvalidate(obj,type){
varrange=obj.createTextRange();
vartext=range.text;
varselrange=document.selection.createRange();
varseltext=selrange.text;
varstartpos=0,endpos=0;
while(selrange.compareEndPoints("StartToStart",range)>0){
selrange.moveStart("character",-1);
startpos++;
}
while(selrange.compareEndPoints("EndToStart",range)>0){
selrange.moveEnd("character",-1);
endpos++;
}
if(event.keyCode>=48){
varkeytext=String.fromCharCode(event.keyCode);
text=text.substring(0,startpos)+keytext+text.substring(endpos,text.length);
}elseif(event.keyCode==46){//delete
if(startpos==endpos)text=text.substring(0,startpos)+text.substring(startpos+1,text.length);
elsetext=text.substring(0,startpos)+text.substring(endpos,text.length);
}elseif(event.keyCode==8){
if(startpos==endpos)text=text.substring(0,startpos-1)+text.substring(startpos,text.length);
elsetext=text.substring(0,startpos)+text.substring(endpos,text.length);
}
if(event.keyCode==45){
event.returnValue=false;
return;
}
varvalid;
switch(type){
case1:valid=isDate(text);break;
case2:valid=isTime(text);break;
case3:valid=isDateTime(text);break;
default:valid=false;
}
if(!valid){
event.returnValue=false;
}
}
</script>
把下面这段代码放在web页面的任何地位便可。
利用办法:
日期考证框:<inputonkeyDown="validate(this,1)"value="0000-00-00">
工夫考证框:<inputonkeyDown="validate(this,2)"value="00:00:00">
日期工夫考证框:<inputonkeyDown="validate(this,3)"value="0000-00-0000:00:00">
我们能够测试一下。
在页面上到场以下内容:
<inputid="date"onkeyDown="validate(this,3)"value="0000-00-0000:00:00">
然后你能够实验向这个输出框内输出任何内容,看看效果怎样吧。
自己的整个学习思路完全被老师的讲课思路所牵制,这样几节课听下来,恐怕自己的见解都应该是书里的知识点了,根本谈不上自身发现问题,分析问题,和解决问题能力的切实提高。 |
|