reg = /^(\d{2}|\d{4})\-\d{2}\-\d{2}$/;

解决方案 »

  1.   

    reg = /^(\d{2}|\d{4})\-\d{1,2}\-\d{1,2}$/;
      

  2.   

    <FORM name="form1" method="post" action="">
    <INPUT type="text" value="" id="txt">
    <INPUT type="button" value="check" onClick="checkDate(document.all.txt.value)">
    </FORM>
    <SCRIPT language="javascript">
    function checkDate(str)
    {
    var pattern = /^((\d{4})|(\d{2}))-(\d{1,2})-(\d{1,2})$/g;

    //如果格式不匹配,返回
    if(!pattern.test(str))
    {
    alert("格式不匹配!");
    return false;
    }
    var arrDate = str.split("-");
    if(parseInt(arrDate[0]) < 100)
    arrDate[0] = 2000 + parseInt(arrDate[0]) + "";
    //看是否在2000-1-1与2099-12-31之间
    var numDate = parseInt(arrDate[0]+((parseInt(arrDate[1])<10)?("0"+arrDate[1]):arrDate[1])+""
      +((parseInt(arrDate[2])<10)?("0"+arrDate[2]):arrDate[2])+"");
    if(!((numDate)>=20000101&&(numDate)<=20991231))
    {
    alert("必须位于2000-1-1与2099-12-31之间!");
    return false;
    }
    //验证日期合法性
    var date =  new Date(arrDate[0],(parseInt(arrDate[1]) -1)+"",arrDate[2]);
    if(date.getYear() == arrDate[0] 
       && date.getMonth() == (parseInt(arrDate[1]) -1)+""
       && date.getDate() == arrDate[2])
    {
    alert("校验通过!");
    return true;
    }
    else
    {
    alert("日期不合法!");
    return false;
    }
    }
    </SCRIPT>
      

  3.   

    to kingerq(多菜鸟) :
     "-" 不需要转义吧