日期:2014-05-18  浏览次数:20734 次

判断输入字符串是否是有效日期的问题



在web开发中

怎样判断一个用户输入的字符串 是否是一个有效的日期

大家说说有那些解决方案 .

------解决方案--------------------
最好找一个正则式,虽然负责,应该还是有的,用DateFormat进行parse看是否抛异常效率应该不如前面的搞,而且web的话用js的正则式也比较方便一点
------解决方案--------------------
<head>
<title> 校验日期的合法性 </title>
<script>
function checkDateInput() //用于检查日期输入是否正确
{
var obj=document.getElementById( "indate ");
if(obj.value.length==0)
return false;
var objValue=obj.value.replace(/[-\.]/g, "/ ");

try
{
var a=new Date(objValue);
if(isNaN(a))
{
obj.value= " ";
alert( "!!!!请注意:\n您刚才输入的日期不正确,我们已进处了清除。 ");
obj.focus();
return false;
}
var b;
if(a.getFullYear() <1900||a.getFullYear()> 2100)
{
var Today=new Date();
b=Today.getFullYear()+ "- "+(a.getMonth()+1)+ "- "+a.getDate();
}
else if(a.getFullYear() <1950)
b=(a.getFullYear()+100)+ "- "+(a.getMonth()+1)+ "- "+a.getDate();
else b=a.getFullYear()+ "- "+(a.getMonth()+1)+ "- "+a.getDate();
obj.value=obj.value.replace(/[-\.\/]0*/g, "- ");
if(b!=obj.value)
{
obj.value=b;
alert( "!!!!请注意:\n您刚才输入的日期不正确,我们已进行了修改。 ");
obj.select();
obj.focus();
return false;
}
else
{
alert( "恭喜你!\n您刚才输入的日期正确。 ");
}
}
catch(Exception)
{
obj.value= " ";
alert( "!!!!请注意:\n您刚才输入的日期不正确,我们已进处了清除。 ");
obj.focus();
return false;
}
}

</script>
</head>

<body>
请输入时间:
<input type= "text " value= " " id= "indate " name= "indate ">
<INPUT TYPE= "button " onclick= "checkDateInput() " value= "test ">
</body>
</html>