webForumDet fria alternativet

validering av datumsträng

1 svar · 192 visningar · startad av Koggen

KoggenMedlem sedan juni 2002169 inlägg
#1

Hej
Jag har letat i forumet, men hittar inget om just denna typ av validering.

Jag har ett datumfält i ett formulär som jag vill skall valideras så att formatet 2003-03-06 följs. D.v.s. fyra siffror, följt av bindestreck, sen två siffror, följt av bindestreck och sist två siffror och inget mer.
Formulärfältet ingår i ett aspdokument för att skicka upp filer på servern, så jag vill helst lösa detta med javascript.

Tack för hjälpen i förväg

Peter SMedlem sedan dec. 20025 484 inlägg
#2

Du kan ta bort den kursiverade delen om du inte vill kontrollera att datumet inte är större än dagens:

function checkDate(o){
	var p = o.elements["date"].value;

	if(! /^([0-9]{4})[\-]([0-9]{2})[\-]([0-9]{2})$/.test(p)){
		alert("Felaktigt datum");
		return false;
	}[i] else {
		var t = p.split("-");
		var d = new Date();
		var year =(d.getYear() < 1000) ? d.getYear()+1900 : d.getYear();

		if(t[0] > year || t[1] > (d.getMonth()+1) || t[2] > d.getDate()){
			alert("Felaktigt datum");
			return false;
		}
	}[/i]
};
...
<form onsubmit="return checkDate(this)">
     <input type="text" name="date">
</form>
...

:)

Genererad på 374 ms · cache AV · v20260730165559-full.f96bc7eb