Hi i'm using laravel and I want to validate create a regex which will allow a specific format for duration (not time as this can exceed a 24 hr format). so for example 124hrs 30 mins and 24 secs would be represented as follows 124:30:24. But the first value can be over 1 character and a number, the second value needs be a colon, the third value needs to be 2 characters and a number, the fourth value needs to be a colon and the fifth value needs to be 2 characters and a numbers.
Any ideas how I can create an regex that will achieve this to insert into the following array?
$rules = array(
'duration' => 'required|regex:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).+$/'
);
invalid examples:
alphacharacters e.g. qwerty
0:0:0
0:
0
1
30:211:211
30:2111:2111
a:d:d
asd
valid examples:
01:00:00
1:00:00
30:21:21
330:21:21
1330:21:21
11330:21:21
basically any amount of hours.
Give your examples this regex should suffice:
^\d+:\d{2}:\d{2}$
Demo: https://regex101.com/r/kO4xN2/2
\d
is a number+
is a quantifier meaning one or more of the preceding character (or group){}
is an amount of characters to allow (you can give it a range as well)^$
are anchors, so the string must be an exact match, if there is more content in the string this should be removed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With