Home » Php » php – Regex to allow numbers and only one hyphen in the middle

php – Regex to allow numbers and only one hyphen in the middle

Posted by: admin July 12, 2020 Leave a comment

Questions:

I am trying to write a regular expression to allow numbers and only one hypen in the middle (cannot be at start or at the end)
say pattern: 02-04 , 02are acceptable but
pattern: -- or - or -02 or 04- or 02-04-06 are unacceptable

I tried something like this but this would allow – at the beginning and also allow multiple –

'/^[0-9 \-]+$/'

I am not that good with regex so a little explanation would be real helpful.

EDIT: Sorry to bug you again with this but I need the numbers to be of only 2 digits (123-346) should be considered invalid.

How to&Answers:

Try this one:

/^\d{1,2}(-\d{1,2})?$/

One or two digits, followed by, optionally, ( a hyphen followed by one or two digits)

Answer:

Fairly easy:

^\d+(-\d+)?$

At least one (+) digit (\d), followed by an optional group containing a hyphen-minus (-), followed by at least one digit again.

Answer:

For strings containing only that pattern the following should work

^(\d{2}-)?\d{2}$

A group of 2 digits followed by minus ending with a group of 2 digits without minus.