正则表达式允许数字和中间只有一个连字符

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.

Try this one:

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

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

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.

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.