webForumDet fria alternativet

Tidpunktskontroll

3 svar · 207 visningar · startad av Klauz

KlauzMedlem sedan jan. 2005133 inlägg
#1

Tjo!

Jag har ett formulär där man ska skriva in ett klockslag. Sedan när man submitar formuläret startar en felkontroll av formuläret.

Formatet måste vara såhär 12:00 (2 siffror + kolontecken + 2 siffror) för att fungera i databasen.

Har börjat lite smått men får det inte att funka! Vad betyder isFinite och charAt? Usch, jag är så dålig på javascript! x(

if(document.step3.tid.value.length == 5) {
if(document.step3.tid.value.charAt(2) != ":") {
tidfel = 1
}
if(isFinite(document.step3.tid.value.charAt(0)) != true || isFinite(document.step3.tid.value.charAt(1)) != true || isFinite(document.step3.tid.value.charAt(3)) != true || isFinite(document.step3.tid.value.charAt(4)) != true) {
tidfel = 2
}
} else {
tidfel = 3
}

Jag vill att scriptet ska kolla så att det är siffror i 1,2,4 och 5:e teckenrutan, samt att 3:e rutan innehåller ett kolon. Nu funkar det att skriva in bokstäver bland siffrorna.. så nåt är väl fel med isFinite antar jag..

mvh
Martin

dectgapMedlem sedan sep. 20021 655 inlägg
#2

isFinite kontrollerar ifall argumentet är ett ändligt tal, så det är inget du behöver använda.

Två olika sätt att lösa det:

1. Regexp

if(/^(0?[0-9]|1[0-9]|2[0-3]):([0-5][0-9])$/.test(document.step3.tid.value)) {
	// Giltigt tidsformat
}

2. Dela vid kolon och behandla som tal:

if(parts.length == 2 && parts[0] >= 0 && parts[0] < 24 && parts[1] >= 0 && parts[1] < 60) {
	// Giltigt tidsformat
}
KlauzMedlem sedan jan. 2005133 inlägg
#3

Tackar! Ska testa direkt!

Vad menar du med ändligt tal?

JojoxxMedlem sedan juni 20004 308 inlägg
#4

Ett ändligt tal (enligt javascript) är ett tal som är inom ramen för vad javascript (i.e. interpretern) klarar av att hantera. Detta exempel ses normalt som oändligt, även om det inte är det egentligen (bara rättså stort);

var a=Math.pow(10,1000);
alert(isFinite(a));
136 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)