有没有关于日期的validator(.net的控件)?要是没有,如何按一定的格式(2003-10-22)做正则表达式?我真的很想你的帮助。。因我的日期域有很多,要做验证呀。。谢谢。。

解决方案 »

  1.   

    <INPUT id="Text4" type="text" name="Text4" onfocusout="checkDate(this)">function checkDate(obj)
     { var val=obj.value;
       if(val=='')return;
    exp=new RegExp('^\\s*(\\d{4})(?:[-])(\\d{1,2})(?:[-])(\\d{1,2})\\s*$');
    m=val.match(exp);
    if(m==null)
    alert('格式错误,格式应为:yyyy-MM-dd.');

    var year=parseInt('0'+RegExp.$1,10);
    var month=parseInt('0'+RegExp.$2,10);
    var day=parseInt('0'+RegExp.$3,10);
    if(year<1)
    alert('年份错!');
    switch(month)
    {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
    if(day<1 || day>31)
    alert('日期错!');
    break;
    case 4:
    case 6:
    case 9:
    case 11:
    if(day<1 || day>30)
    alert('日期错!');
    break;
    case 2:
    {
    if(  (year % 100!=0 && year%4==0)
    ||
    (year%100==0 &&year%400==0) )
    {
    if(day<1|| day>29)
    alert('日期错!');
    }
    else
    {
    if(day<1 || day>28)
    alert('日期错!');
    }
    }
    break;
    default:
    alert('月份错!');
           obj.focus();
    }
    }
      

  2.   

    用DateTime.Parse,然后看是否有异常