Regex只允许数字和在中间的一个连字符


Regex to allow numbers and only one hyphen in the middle

我正在尝试编写一个正则表达式,以允许数字和中间只有一个hypen(不能在开头或结尾)比如模式:02-0402是可接受的,但是模式:----0204-02-04-06是不可接受的

我试过这样的东西,但这将允许-在一开始,也允许多个-

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

我对regex不是很好,所以一点解释会很有帮助。

编辑:很抱歉再次打扰您,但我需要的数字只有2位(123-346),否则将被视为无效。

试试这个:

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

一个或两个数字,后面跟着(可选)(连字符后面跟着一个或二个数字)

相当简单:

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

至少一个(+)数字('d),然后是一个包含连字符减号(-)的可选组,然后再至少一个数字。

对于仅包含该模式的字符串,以下内容应适用于

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

由2位数字组成的一组,后面跟着减号,以不带减号的2位数字结束。