As always, I could not trick my brain into fully understanding regular expressions. And now, I am trying to create the regEx with conditions, like
if second group matches then change the character quantity.
This is a set of values that SHOULD match the regEx:
123456-12345 12345678901 12345678 1312345678912
But if there is the second group (after the “-“), the number or characters in first group must be exactly 6 and if there is no second group, the minimum number of chars in 1st group must be == 8 OR == 11 OR = 13, so these SHOULD NOT match:
12345-12345 // 5 + 5 chars 1234567-12345 // 7 + 5 chars 123456 // 6 chars 12345678901234 // >13 chars 1234567890 // 10 chars 123456789088 // 12 chars
This is what I came up with so far:
This will match most of the required, but will accept also forbidden versions, like:
The main question is how to differentiate groups conditionally and limit the max char number based if the group exists?
P.S. And yes, this is meant to be used in PHP request validation (server-side);
Read more here: Source link