webForumDet fria alternativet

Kontroll av tid

2 svar · 213 visningar · startad av Erik Juhlin

Erik JuhlinMedlem sedan maj 20007 625 inlägg
#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. :)

Erik JuhlinMedlem sedan maj 20007 625 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]);
	}
}
spangoMedlem sedan juni 20006 147 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);
    }
}
123 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
120 ms — hämta tråd, inlägg och bilagor (db)