js 验证日期有效性

自己使用的日期验证 js,大家看下有什么问题不

修改了几个bug
<!-验证日期
    验证格式:年-月-日 或 年/月/日
-!
>
<script type="text/javascript">
    
function checkDate(str)
    
{
        
try
        
{
            
if(/\-/.test(str) && /\//.test(str))
            {
                
return false;
            }

            
            str 
= str.replace(/\-/g,"/");//必须要用正则来替换,否则只替换第一个出现的字符串
            var tmp = str.split("/");
            
            
if(tmp.length > 3)
            
{
                
return false;
            }

            
            
var tempDate = new Date(str);
            
            
var year = tempDate.getYear();
            
var month = tempDate.getMonth() + 1;
            
var day = tempDate.getDate();
            
            
//判断中间不允许有空格
            if(/\s/.test(tmp[0]) || /\s/.test(tmp[1]) || /\s/.test(tmp[2]))
            
{
                alert(
"中间不允许出现空格!");
                
return false;
            }

            
            
//判断年、月、日位数,可以根据自己需求修改
            if(tmp[0].length < 3 || tmp[0].length > 4)
            
{
                
return false;
            }

            
            
if(tmp[1].length > 2)
            
{
                
return false;
            }

            
            
if(tmp[2].length > 2)
            
{
                
return false;
            }

            
//判断年、月、日位数,可以根据自己需求修改
            
            
if(tempDate != null)
            
{    
                
return year == tmp[0&& month == tmp[1&& day == tmp[2];            
            }
else
            
{
                
return false;
            }

        }
catch(ex)
        
{
            
//alert(ex.message);
            return false;
        }

    }

    
    
function test()
    
{
        
var str = document.getElementById("myInput").value;
        
        
if(!checkDate(str))
        
{
            alert(
"请输入正确的日期!");
        }
else
        
{
            alert(
"输入正确!");
        }

    }

</script>
<br />
输入日期:
<input type="text" id="myInput" /><br />
<input type="button" value="验证日期" onclick="test();" />
posted @ 2008-07-16 11:20  -Enchant  阅读(2438)  评论(4编辑  收藏  举报