webForumDet fria alternativet

validering av datumsträng

JavaScript

1 svar · 192 visningar · startad av Koggen

Medlem sedan juni 2002169 inlägg
Frågan#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

Medlem sedan dec. 20025 483 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>
...

:)

356 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
222 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)