I’ve been having this issue over the last few years and i’ve finally had enough of it
For some reason, the below regex conistantly advises that certain months (i.e. March/May) do not have a valid date for the 31’st day (naturally however both March and May have 31 days). However i’ve gone over this regex time and time again, yet can’t make heads or tails as to why its doing it
function isdateField1(currVal) {
if (currVal == '') return false;
//Declare Regex
var rxDatePattern = /^(d{1,2})(-)(?:|(jan)|(feb)|(mar)|(apr)|(may)|(jun)|(jul)|(aug)|(sep)|(oct)|(nov)|(dec))(-)(d{2})$/i;
var dtArray = currVal.match(rxDatePattern);
if (dtArray == null) return false;
var dtDay = parseInt(dtArray[1]);
var dtMonth = parseInt(dtArray[3]);
var dtYear = parseInt(dtArray[17]);
if (isNaN(dtMonth)) {
for (var i = 4; i <= 15; i++) {
if ((dtArray[i])) {
dtMonth = i - 3;
break;
}
}
}
if (dtMonth < 1 || dtMonth > 12) return false;
else if (dtDay < 1 || dtDay > 31) return false;
else if ((dtMonth == 4 || dtMonth == 6 || dtMonth == 9 || dtMonth == 11) && dtDay == 31) return false;
else if (dtMonth == 2) {
var isleap = (dtYear % 4 == 0 && (dtYear % 100 != 0 || dtYear % 400 == 0));
if (dtDay > 29 || (dtDay == 29 && !isleap)) return false;
}
return true;
}
I think I just need a 2nd set of eyes to go over it, I don’t doubt its something small overlooked.
Thanks





