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. :)
Kontroll av tid
2 svar · 213 visningar · startad av Erik Juhlin
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]);
}
}
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);
}
}