如果取当前日期,最好用数据库本身提供的默认值getdate(),既安全又省事

解决方案 »

  1.   

    在Google中找一下,这个东东应该很多人要用的。
    强烈建议用正则表达式
      

  2.   

    Example
    This example uses the IsDate function to determine if several variables can be converted to dates.Dim MyDate, YourDate As Date
    Dim NoDate As String
    Dim MyCheck As Boolean
    MyDate = "February 12, 1969"
    YourDate = #2/12/1969#
    NoDate = "Hello"
    MyCheck = IsDate(MyDate)   ' Returns True.
    MyCheck = IsDate(YourDate)   ' Returns True.
    MyCheck = IsDate(NoDate)   ' Returns False.
      

  3.   

    没有找到合适的正则表达式,找到了。yyyy-mm-dd 的,也找到了hh:mm:ss的。但是我不会把它们两个合成一个表达式。请教IsDate()函数的用法。
      

  4.   

    (1)正则
    (2) String.IndexOf()
    (3) vbscript:
        textbox1.value.instr()函数判断出各个符号的位置,每个都是数字,并且以特定的形式分隔就成了
    当然,正则表达式最好
      

  5.   

    对tbDate进行验证var strDOB = document.all.tbDate.value ;
    if (strDOB != "")
    {
    var pattern = /^(\d{4})\-(\d{2})\-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/ ; 
    flag = pattern.test(strDOB); 
    if(!flag)
    {
    document.all.tbDate.focus() ;
    alert("Not valid DOB"); 
    return false ;
    }

    }
    但这个验证并不完整,符合条件的字符串不一定既是合法的时间
      

  6.   

    下面是我的一个验证日期有效性的函数,只能验证型如mm/dd/yyyy的日期,m和d可以是一位或两位。这个函数在最近几百年内是可以使用的(因为我没有验证年份最后两位是00的情况)。
    function IsDate(val)
    {
    var re = new RegExp("(\d{1,2})\/(\d{1,2})\/(\d{4})");
    var arr = re.exec(val) ;
    var mm = parseInt(RegExp.$1) ;
    var dd = parseInt(RegExp.$2) ;
    var yy = parseInt(RegExp.$3) ;
    if (mm>12||mm<1)
    return false ;
    if (dd<1)
    return false ;

    if (mm == 1||mm == 3||mm == 5||mm == 7||mm == 8||mm == 10||mm == 12)
    {
    if (dd>31)
    return false ;
    }
    else if (mm == 2)
    {
    if (dd>29)
    return false ;
    if (yy % 4 != 0)
    {
    if (dd>28)
    return false ;
    }
    }
    else
    {
    if (dd>30)
    return false ;
    }
    return true ;
    }