Hoi,
Ik probeer een reg expr in elkaar te zetten om te kijken of een ingevoerde tijd geldig is. Enige is dat ik vrij nieuw ben met regular expressions. Volgens een manual dat ik door heb genomen zou je door middel van het tussenhaakjes zetten van een statement deze optional kunnen maken. Dit heb ik dan ook gedaan, maar lijkt niet helemaal naar behoren te werken. In de onderstaande code worden namelijk alleen de tijden gevalideerd die zowel een : als een . in de tijd hebben; de rest is ongeldig. Dit is natuurlijk niet de bedoeling.
Om een en ander te verduidelijken heb ik hieronder een stukje test code plus mijn reg expr bijgevoegd. Alle tijden die in de array staan zouden moeten valideren, behalve de laatste entry, die is toegevoegd om te controleren of er niet per ongeluk een fout optreed waardoor alles zou valideren.
Iemand die me hiermee kan helpen?
Ik probeer een reg expr in elkaar te zetten om te kijken of een ingevoerde tijd geldig is. Enige is dat ik vrij nieuw ben met regular expressions. Volgens een manual dat ik door heb genomen zou je door middel van het tussenhaakjes zetten van een statement deze optional kunnen maken. Dit heb ik dan ook gedaan, maar lijkt niet helemaal naar behoren te werken. In de onderstaande code worden namelijk alleen de tijden gevalideerd die zowel een : als een . in de tijd hebben; de rest is ongeldig. Dit is natuurlijk niet de bedoeling.
Om een en ander te verduidelijken heb ik hieronder een stukje test code plus mijn reg expr bijgevoegd. Alle tijden die in de array staan zouden moeten valideren, behalve de laatste entry, die is toegevoegd om te controleren of er niet per ongeluk een fout optreed waardoor alles zou valideren.
Iemand die me hiermee kan helpen?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| /* eventueel (x aantal decimalen gevolgd door een dubbele punt OF alleen een dubbele punt) 2 decimalen eventueel (een punt gevolgd door een of twee decimalen) */ $regexpr = "/^([0-9]+:|:)[0-9]{2}(\.[0-9]{1,2})$/"; $tijden = array("12:58.32", "12:58.3", "12:58", ":34.10", ":34.1", "34.10", "34.1", "34", "onzin"); foreach($tijden as $tijd) { echo $tijd ."\t"; echo (preg_match($regexpr, $tijd) ? "true" : "false"); echo "\n"; } |
Through meditation I program my heart to beat breakbeats and hum basslines on exhalation -Blackalicious || *BetuweKees was AFK; op de fiets richting China en verder