写一段Java Script程序对以下程序的用户输入日期的有效性进行判断,如果格式错误就提示用户。在程序的恰当位置注明怎样调用你的程序。日期格式为:年年年年月月天天小时,例如 2003010812。请在下面的程序中写入javascript代码
<html>
<head>
<title>NewPage1</title>
</head>
<body>
<form method="POST" action=""> <p>查询日期(yyyymmddhh):<br>
从<input type="text" name="DateFrom" size="20"><br>
到<input type="text" name="DateTo" size="20"></p><p>
</form>
</body>
</html>thanks
class="easyui-datebox" type="text" /><span style="margin: 2px">至</span>
<input name="EndTime" id="EndTime" editable="false" style="width: 150px" class="easyui-datebox" type="text" />在easyui里有日历控件,你单纯用文本框的话,验证起来忒麻烦了
{
var sDate=DateStr.replace(/(^\s+|\s+$)/g,''); //去两边空格;
if(sDate=='') return true;
//如果格式满足YYYY-(/)MM-(/)DD或YYYY-(/)M-(/)DD或YYYY-(/)M-(/)D或YYYY-(/)MM-(/)D就替换为''
//数据库中,合法日期可以是:YYYY-MM/DD(2003-3/21),数据库会自动转换为YYYY-MM-DD格式
var s = sDate.replace(/[\d]{ 4,4 }[\-/]{ 1 }[\d]{ 1,2 }[\-/]{ 1 }[\d]{ 1,2 }/g,'');
if (s=='') //说明格式满足YYYY-MM-DD或YYYY-M-DD或YYYY-M-D或YYYY-MM-D
{
var t=new Date(sDate.replace(/\-/g,'/'));
var ar = sDate.split(/[-/:]/);
if(ar[0] != t.getYear() || ar[1] != t.getMonth()+1 || ar[2] != t.getDate())
{
//alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');
return false;
}
}
else
{
//alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');
return false;
}
return true;
}
从<input type="text" name="DateFrom" size="20" onblur="fun(this)"><br>
到<input type="text" name="DateTo" size="20" onblur="fun(this)"></p><p>
</form>
<script type="text/javascript">
function fun(obj){
if(!isDate(obj.value)){
alert("日期格式错误!");
obj.value="";
}
}
function isDate(str){
var reg = /^(\d{4})(\d{2})(\d{2})(\d{2})$/;
var result = str.match(reg);
if(result == null||parseFloat(result[4])>23)return false;
var t=result[1]+","+parseFloat(result[2])+","+parseFloat(result[3]);
var d = new Date(result[1],result[2]-1,result[3]);
var newStr = d.getFullYear()+","+parseFloat(d.getMonth()+1)+","+parseFloat(d.getDate());
return t == newStr;
}
</script>
var reg = /^(\d{4})(\d{2})(\d{2})(\d{2})$/;
var result = str.match(reg);
这些是什么意思呢,能解释下吗,
result[1]+result[2]+result[3] 必须是正确的年月日格式
result[4]必须是小于24的数