Monday, December 8, 2014

Date validation using javascript

Dear friends,the following code validates date entered in text field for valid month,year,special characters,day,february checks etc,. Date validation library search in the internet sent me nowhere near a great solution,so i decided to create my own set of code and share it with all


var d1;

var d2;

var d3 = new Date();

var day3 = d3.getDate();

var m3 = d3.getMonth() +1;//jan is usually 0 in js

var y3 = d3.getFullYear();

if(day3<10){

day3='0'+day3;

}

if(m3<10){

m3='0'+m3;

}

var todaystr =m3 +'/'+day3+'/'+y3;

var todaydt = new Date(todaystr);


var v_erpStartDate = document.getElementById('newSRPage:mainform:templatepg:erpStartDateStr').value;

var v_erpEndDate = document.getElementById('newSRPage:mainform:templatepg:erpEndDateStr').value;

if (v_erpStartDate == '') {


alert('Start Date is required');

return false;

}

var v_erpStartDate1 = new Date(v_erpStartDate);

/* if (v_erpStartDate1 > todaydt){


alert('Start Date cannot be greater than today');

return false;

}*/


if (v_erpStartDate1 <todaydt){


alert('Start Date cannot be lesser than today');

return false;

}




if(!/^\d{1,2}\/\d{1,2}\/\d{4}$/.test(v_erpStartDate)){

alert('Invalid Start Date format. Please enter in correct format: mm/dd/yyyy');

return false;

}




if (v_erpEndDate == '') {

alert('End Date is required');

return false;

}


if(!/^\d{1,2}\/\d{1,2}\/\d{4}$/.test(v_erpEndDate)){

alert('Invalid End Date format. Please enter in correct format: mm/dd/yyyy');

return false;

}


var datearray = v_erpStartDate.split("/");

if (parseInt(datearray[0]) > 12||parseInt(datearray[0]) <1 || datearray[0].length<2){


alert('Invalid month entered in Start Date. Please enter in correct format: 01 - 12');

return false;

}

if((parseInt(datearray[0]) == 4 || parseInt(datearray[0]) == 6 || parseInt(datearray[0]) == 9 || parseInt(datearray[0]) ==11) &&(parseInt(datearray[1]) > 30)){

alert('Last date for the month entered in Start Date cannot be greater than 30');

return false;


}




if(parseInt(datearray[0]) == 2 && parseInt(datearray[1]) > 28)


{

alert('Last date for the month entered in Start Date cannot be greater than 28');

return false;


}






if (parseInt(datearray[1]) > 31||parseInt(datearray[1]) <1 || datearray[1].length<2){


alert('Invalid day entered in Start Date. Please enter in correct format: 01 -31');

return false;

}

if (parseInt(datearray[2]) > 2040 ||parseInt(datearray[2]) <2014 || datearray[2].length<4){


alert('Invalid year entered in Start Date. Please enter in correct format and within range : 2014 -2040');

return false;

}

d1 = new Date(parseInt(datearray[2]),parseInt(datearray[0]),parseInt(datearray[1]));


datearray = v_erpEndDate.split("/");

if (parseInt(datearray[0]) > 12||parseInt(datearray[0]) <1 || datearray[0].length<2){


alert('Invalid month entered in End date. Please enter in correct format: 01 - 12');

return false;

}


if (parseInt(datearray[1]) > 31||parseInt(datearray[1]) <1 || datearray[1].length<2){


alert('Invalid day entered in End Date. Please enter in correct format: 01 -31');

return false;

}


if (parseInt(datearray[2]) > 2040 ||parseInt(datearray[2]) <2014 || datearray[2].length<4){


alert('Invalid year entered in End Date. Please enter in correct format and within range: 2014 -2040');

return false;

}


d2 = new Date(parseInt(datearray[2]),parseInt(datearray[0]),parseInt(datearray[1]));


if(d1>d2){


alert('End Date cannot be earlier than Start Date');

return false;

}


return true;

No comments:

Post a Comment