Försöker få ihop en datum-validator men får inte ihop det.
Jag lägger ut koden och hoppas på att någon kan hitta felet.
Jag vill ha datumet så här yyyy-mm-dd och det funkar att kolla.
Men när jag sen ska kolla så att inte
månaden är över 12 ellerunder 1 så blir det fel.
Värder på månaden blir minus. Den tar med skiljestrecket.
<script language="JavaScript">
function formCheck( form ) {
var objRegExp =/^(\d{4})\-(\d{2})\-(\d{2})$/
strValue = window.document.forms[form].elements["dat"].value;
if(!objRegExp.test(strValue))
{
window.alert("Datumformat = yyyy-mm-dd");
return false;
}else{
var arrayDate = strValue.split(RegExp.$1);
var intDay = parseInt(arrayDate[2],10);
var intYear = parseInt(arrayDate[0],10);
var intMonth = parseInt(arrayDate[1],10);
if(intMonth > 12 || intMonth < 1) {
window.alert(intMonth);
return false;
}
var arrayLookup = { '1' : 31,'3' : 31, '4' : 30,'5' : 31,'6' : 30,'7' : 31,
'8' : 31,'9' : 30,'10' : 31,'11' : 30,'12' : 31}
if(arrayLookup[parseInt(arrayDate[1])] != null) {
if(intDay <= arrayLookup[parseInt(arrayDate[1])] && intDay != 0)
return true;
}
if (intMonth-2 ==0) {
var booLeapYear = (intYear % 4 == 0 && (intYear % 100 != 0 || intYear % 400 == 0));
if( ((booLeapYear && intDay <= 29) || (!booLeapYear && intDay <=28)) && intDay !=0)
return true;
}
}
window.alert("Datumformat = yyyy-mm-dd3");
return false;
}
</script>
<form action="test.html" method="post" name="o" onSubmit="return formCheck('o');">
<input type="text" name="dat" value="2004-01-02" ><input type="submit">
</form>
Tack på förhand
/SIFIX