js日期格式校验的正则表达式子。简单的写应该为
var reg=/^(/d{4})([/])(/d{2})([/])(/d{2})$/;
if(!reg.test(strDate)){
alert("日期格式不正确!/n正确格式为:2004/01/01");
return false;
}
前一阵子测试人员发现我原先的的正则表达式子 var reg=/^(/d{4})([/])(/d{2})([/])(/d{2})/;为什么对 2008/03/25ttt这样校验无效。 后来发现是自己写的校验正则表达式子有问题,结尾处少了符号$,正确写法是var reg=/^(/d{4})([/])(/d{2})([/])(/d{2}) $/
一个完整的js校验yyyy/mm/dd的js写法
<script language="JavaScript1.2">
function CheckDate(strDate){
//var strDate = document.getElementById("date_hour").value;
var reg=/^(/d{4})([/])(/d{2})([/])(/d{2})$/;
if(!reg.test(strDate)){
alert("日期格式不正确!/n正确格式为:2004/01/01");
return false;
}
var ss=strDate.split("/");
var year=ss[0];
var month=ss[1];
var date=ss[2];
if(!checkYear(year)){return false;}
if(!checkMonth(month)){return false;}
if(!checkDate(year,month,date)){return false;}
return true;
}
function checkYear(year){
if(isNaN(parseInt(year)))
{alert("年份输入有误,请重新输入!");
return false;
}
else if(parseInt(year)<1950 || parseInt(year) >2050)
{
alert("年份应该在1950-2050之间!");
return false;
}
else return true;
}
function checkMonth(month){
if(isNaN(parseInt(month,10))){alert("月份输入有误,请重新输入!"); return false;}
else if(parseInt(month,10)<1 || parseInt(month,10) >12)
{ alert("月份应该在1-12之间!");
return false;}
else return true;
}
function checkDate(year,month,date){
var daysOfMonth=CalDays(parseInt(year),parseInt(month));
if(isNaN(parseInt(date))){alert("日期输入有误,请重新输入!"); return false;}
else if(parseInt(date)<1||parseInt(date)>daysOfMonth){ alert("日期应该在1-"+daysOfMonth+"之间!"); return false;}
else return true;
}
function CalDays(year,month){
var date= new Date(year,month,0);
return date.getDate();
}
function isLeapYear(year){
if((year %4==0 && year %100!=0) || (year %400==0)) return true;
else return false;
}
function submitForm(){
if($('date_hour')){
$('date_hour').value = '';
}
if($('fromDate_day')){
$('fromDate_day').value = '';
}
if($('toDate_day')){
$('toDate_day').value = '';
}
$('loginCountStatForm').submit();
}
</script>
var reg=/^(/d{4})([/])(/d{2})([/])(/d{2})$/;
if(!reg.test(strDate)){
alert("日期格式不正确!/n正确格式为:2004/01/01");
return false;
}
前一阵子测试人员发现我原先的的正则表达式子 var reg=/^(/d{4})([/])(/d{2})([/])(/d{2})/;为什么对 2008/03/25ttt这样校验无效。 后来发现是自己写的校验正则表达式子有问题,结尾处少了符号$,正确写法是var reg=/^(/d{4})([/])(/d{2})([/])(/d{2}) $/
一个完整的js校验yyyy/mm/dd的js写法
<script language="JavaScript1.2">
function CheckDate(strDate){
//var strDate = document.getElementById("date_hour").value;
var reg=/^(/d{4})([/])(/d{2})([/])(/d{2})$/;
if(!reg.test(strDate)){
alert("日期格式不正确!/n正确格式为:2004/01/01");
return false;
}
var ss=strDate.split("/");
var year=ss[0];
var month=ss[1];
var date=ss[2];
if(!checkYear(year)){return false;}
if(!checkMonth(month)){return false;}
if(!checkDate(year,month,date)){return false;}
return true;
}
function checkYear(year){
if(isNaN(parseInt(year)))
{alert("年份输入有误,请重新输入!");
return false;
}
else if(parseInt(year)<1950 || parseInt(year) >2050)
{
alert("年份应该在1950-2050之间!");
return false;
}
else return true;
}
function checkMonth(month){
if(isNaN(parseInt(month,10))){alert("月份输入有误,请重新输入!"); return false;}
else if(parseInt(month,10)<1 || parseInt(month,10) >12)
{ alert("月份应该在1-12之间!");
return false;}
else return true;
}
function checkDate(year,month,date){
var daysOfMonth=CalDays(parseInt(year),parseInt(month));
if(isNaN(parseInt(date))){alert("日期输入有误,请重新输入!"); return false;}
else if(parseInt(date)<1||parseInt(date)>daysOfMonth){ alert("日期应该在1-"+daysOfMonth+"之间!"); return false;}
else return true;
}
function CalDays(year,month){
var date= new Date(year,month,0);
return date.getDate();
}
function isLeapYear(year){
if((year %4==0 && year %100!=0) || (year %400==0)) return true;
else return false;
}
function submitForm(){
if($('date_hour')){
$('date_hour').value = '';
}
if($('fromDate_day')){
$('fromDate_day').value = '';
}
if($('toDate_day')){
$('toDate_day').value = '';
}
$('loginCountStatForm').submit();
}
</script>