首页 新闻 会员 周边

.Net 中输入时间时验证,它的正则表达式怎么写?

0
[已解决问题] 解决于 2011-09-20 14:58

当我在TextBox中输入时间时,对输入的时间加以验证,它的正则表达式怎么写?

程程==的主页 程程== | 菜鸟二级 | 园豆:250
提问于:2011-09-19 10:58
< >
分享
最佳答案
0
function mycheck(){
var str=$("#date").val();
var reg =/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; ---创建正则验证表达式
var r = str.match(reg); ---使用正则表达式对字符串查找,并将包含查找的结果作为数组返回
if(r==null){alert("对不起,您输入的日期格式不正确!");Stime.starttime.focus();return;}
if(r[3]<1||r[3]>12){alert("月份必须介于1和12之间,请您重新输入!");$("#date").focus();return;} ---对月份进行判定

//对日期进行判定
if(r[3]==2&&r[1]%4==0) ---闰年二月的日期的判定
{
if(r[4]<0||r[4]>29){alert(r[1]+"年2月的日期必须介于1和29之间,请您重新输入!");$("#date").focus();return;}
}
if(r[3]==2&&r[1]%4!=0) ---平年二月的日期的判定
{
if(r[4]<0||r[4]>28){alert(r[1]+"年2月的日期必须介于1和28之间,请您重新输入!");$("#date").focus();return;}
}
if(r[3]<8&&r[3]%2==0) ---4,6月日期的判定
{
if(r[4]<0||r[4]>30){alert(r[3]+"月的日期必须介于1和30之间,请您重新输入!");$("#date").focus();return;}
}
if(r[3]<8&&r[3]%2!=0) ----135、7月日期的判定
{
if(r[4]<0||r[4]>31){alert(r[3]+"月的日期必须介于1和31之间,请您重新输入!");$("#date").focus();return;}
}
if(r[3]>=8&&r[3]%2==0) ----810、12月日期的判定
{
if(r[4]<0||r[4]>31){alert(r[3]+"月的日期必须介于1和31之间,请您重新输入!");$("#date").focus();return;}
}
if(r[3]>=8&&r[3]%2!=0----9、11月日期的判定
{
if(r[4]<0||r[4]>30){alert(r[3]+"月的日期必须介于1和30之间,请您重新输入!");$("#date").focus();return;}
}

//时间的判断

if(r[5]<0||r[5]>23){alert("小时数必须介于0和23之间,请您重新输入!");$("#date").focus();return;} ---对小时进行判断
if(r[6]<0||r[6]>59){alert("分钟数必须介于0和59之间,请您重新输入!");$("#date").focus();return;} ---对分钟进行判断
if(r[7]<0||r[7]>59){alert("秒数必须介于0和59之间,请您重新输入!");$("#date").focus();return;} ---对秒进行判断
}

上面的JS可以验证,但不太建议让用户手动输入,最好用时间选择器,推荐一个:My97 DatePicker

artwl | 专家六级 |园豆:16736 | 2011-09-19 11:13
其他回答(1)
0

是在服务器端通过C#代码进行验证还是在客户端通过js进行验证?

dudu | 园豆:30994 (高人七级) | 2011-09-19 11:55

客户端

支持(0) 反对(0) 程程== | 园豆:250 (菜鸟二级) | 2011-09-19 16:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册