Ik zit met een probleempje waarvan ik hoop dat iemand kan helpen.
Ik heb een bepaald formulier waarin ik een geboortedatum moet kunnen opgeven om deze later in een database weg te schrijven, in volgend formaat (dd-mm-yyyy).
Met javascript check ik of de geboortedatum is ingevuld:
Ik check de totale lengte van de geboortedatum (10 characters lang) en check vervolgens of er een "-" staat op character #3 en character #6. Ziet iemand de fout?
Groeten,
Nick
Ik heb een bepaald formulier waarin ik een geboortedatum moet kunnen opgeven om deze later in een database weg te schrijven, in volgend formaat (dd-mm-yyyy).
Met javascript check ik of de geboortedatum is ingevuld:
Code:
function isFilled(veld) {
if (veld.value == "" ||
veld.value == null) {
return false;
}
else {
return true;
}
}
Daarna check ik of het wel een datum is die bestaat (i.v.m. schrikkeljaren, 32 januari e.d.)
function isDate(veld) {
dateStr = veld.value;
var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var matchArray = dateStr.match(datePat); // formaat ok?
if (matchArray == null) {
return false;
}
day = matchArray[1]; // datum in variabelen steken
month = matchArray[3];
year = matchArray[5];
if (month < 1 || month > 12) { // check of maand klopt
return false;
}
if (day < 1 || day > 31) {
return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
return false;
}
if (month == 2) { // 29 februari checken
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day==29 && !isleap)) {
return false;
}
}
return true;
}
Dit zit dan nadien in een functie die ik {isReady(form) <- verwijzing naar formulier} heb genoemd, wat allemaal prima werkt totdat ik i.p.v. een "-" tussen de dd-mm-yyyy zet, bijvoorbeeld een "/" zet (dus dd/mm/yyyy).
Ik probeerde dit op te lossen met een nieuwe functie maar hier ga ik compleet de mist in denk ik..
function isFormat(veld) {
if (veld.length == 10) {
if (veld.charAt(3) == "-" && veld.charAt(6) == "-") {
return false;
}
} else {
return true;
}
}
Ik check de totale lengte van de geboortedatum (10 characters lang) en check vervolgens of er een "-" staat op character #3 en character #6. Ziet iemand de fout?
Groeten,
Nick
Laatst bewerkt door een moderator: