function SEDay()
{
var NewStartDay=""
NewStartDay=document.form1.StartDay.value
if (NewStartDay.length!==10)
{
if (NewStartDay.length==8)
{NewStartDay=NewStartDay.substring(0,4)+"0" +NewStartDay.substring(5,6)+"0"+NewStartDay.substring(7,7);alert(NewStartDay)}
if (NewStartDay.length==9)
{
/* if NewStartDay.charAt(5)=="0"
{NewStartDay=NewStartDay.substring(0,4)+"0" +NewStartDay.substring(5,8);alert(NewStartDay)}
else
{NewStartDay=NewStartDay.substring(0,7)+"0" +NewStartDay.substring(8,8);alert(NewStartDay)}
*/     }
}if (document.form1.PreEndDay.value<NewStartDay)
{alert("您所预设的任务完成期限在下达日期之前,请重新输入");return(false)}
else
{return (true)}
}以上是我写的代码,我的原意是要检验document.form1.StartDay的值,使该值成为“yyyy-mm-dd”的形式,但是执行的时候总是不起作用,根本就不执行这段代码,必须把中间几行代码注释掉才执行,但是显然不能达到我的要求了,我的java的菜鸟,不知道哪里的问题了,烦请各位大侠指教,万分感谢!

解决方案 »

  1.   


    function SEDay() 

      var NewStartDay;
      NewStartDay = document.form1.StartDay.value;
      oReg = new RegExp("^[\d]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|(1[0-9])|(2[0-9])|(3[0-1]))$","g");
      if(!oReg.test(NewStartDay)){alert("格式不对");return false;}
      if (document.form1.PreEndDay.value < NewStartDay)
          {alert("您所预设的任务完成期限在下达日期之前,请重新输入");return false;} 
      return true; 
    }
      

  2.   

    你的错误应该是/* if NewStartDay.charAt(5)=="0" 
    引起的.把条件用括号括上,if (NewStartDay.charAt(5)=="0")