webForumDet fria alternativet
Logga in / Bli medlem

Kontroll av tid

JavaScript

2 svar · 213 visningar · startad av Erik Juhlin

Medlem sedan maj 200010 687 inlägg
Trådstart#1

Jag behöver ett regulärt uttryck som kollar att man inte skriver något annat än en tid i formatet 14:49.
Alltså först ska det vara 0-23, sen ":" och sen 0-59. :)

Medlem sedan maj 200010 687 inlägg
#2

Slängde ihop ett script med hjälp från chefen...
Kom gärna med tips på förbättringar.

function time(n)
{
	var re = /^(([0-2])?[0-9])\:([0-5][0-9])$/ig;
	var ma = re.exec(n);
	
	if(!ma)
		this.valid = false;
	else
	{
		this.valid = (parseInt(ma[1]) < 24);
		this.hour = parseInt(ma[1]);
		this.minute = parseInt(ma[3]);
	}
}
Medlem sedan juni 20008 205 inlägg
#3

Som det är nu blir det knas om man skriver exempelvis "08:09" eftersom alla tal med nollor framför antas vara oktala, och 8 och 9 är inte giltiga oktala siffror. Dessutom kan man göra det lite svårare att läsa.

function time(s){
    var reg = /^((?:[01]?[0-9])|(?:2[0-3])):([0-5][0-9])$/; // giltigt klockslag
    if (!reg.test(s))
        this.valid = false;
    else {
        this.valid = true;
        this.hour = parseInt(RegExp.$1, 10);
        this.minute = parseInt(RegExp.$2, 10);
    }
}
259 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)