<html> <head> <title>时间输入的校验--包子剑客</title> <!-- 2009.12.12 包子剑客 广州--> </head> <body> 时间输入的校验<br/> 请输入时间: <br/> <input type="text" onblur="isTimeFormat(this)" onkeyup="verify(this)" onkeypress="return inputNumber(event,this);" title="时间格式:00:00"/> <br/> </body> </html> <script> //以下是时间的显示相关函数 function isTimeFormat(str) { var a = str.value.match(/^([0-2][0-9]):([w0-5][0-9])$/); if (a == null) { alert("时间格式不对,已经被自动修正,请留意。"); var length=str.value.length; if (length==1) {str.value="0" + str.value +":00";} else if (length==2) {str.value+=":00";} else if (length==3) {str.value+="00";} else if (length==4) {str.value+="0";} else {str.value="00:00";} str.select(); return false; } return true; } //格式化时间格式 function verify(text){ var hour; var minute; var tmp; var index; var textValue = text.value; if(textValue.length == 1 ) { if (textValue == ":"){text.value = "00:"; } return true; } if(textValue.length == 2 ) { if (!isNum(textValue)) text.value = "0" + textValue; return true; } if(textValue.length > 2){ //当长度超过2时,进行处理 hour = textValue.substr(0,2); //取前两位数字,即小时 if(!isNum(hour)){//不是数字 text.value = '00'; return; } if(hour < 24){ //10<x<24 text.value = hour + ':';//显示小时 index = textValue.indexOf(':'); //定位冒号 minute = index > 0 ? textValue.substr(index + 1,2) : textValue.substr(2,2); if(!isNum(minute)){//不是数字 text.value = hour + ':00'; return; } if(minute < 59){ tmp = hour + ':' + minute; }else{ tmp = hour + ':59'; } }else{ //x>=24 hour = '0' + textValue.substr(0,1); text.value = hour + ':' + text.value.substr(1,1); index = textValue.indexOf(':'); minute = index > 0 ? textValue.substr(index + 1,2) : textValue.substr(1,2); if(!isNum(minute)){//不是数字 text.value = hour + ':00'; return; } if(minute < 59){ tmp = hour + ':' + minute; }else{ tmp = hour + ':59'; } } text.value = tmp;//输入“小时:分钟”格式 } } //只让输入数字和: function inputNumber(e,textValue){ var keynum; var keychar; var numcheck; if(window.event) // IE { if(58==e.keyCode) {return true;} keynum = e.keyCode }else if(e.which) // Netscape/Firefox/Opera { keynum = e.which } keychar = String.fromCharCode(keynum); return isNum(keychar); } //是否为数字 function isNum(str){ if(""==str){ return true; } var reg = /\D/; return str.match(reg)==null; } //以上是时间的显示相关函数 </script>
详细解决方案
时间输入框跟时间检验
热度:340 发布时间:2012-11-06 14:07:00.0
相关解决方案