我正在尝试编写一个正则表达式来允许数字,并且只有一个在中间爆发(不能在开始或结束时)
说模式:02-04
,02
是可以接受的
模式:--
或-
或-02
或04-
或02-04-06
是不可接受的
我试过这样的事情,但是这会允许 - 在开始时也允许多个 -
'/^[0-9 \-]+$/'
我对正则表达式不太好,所以一点点解释会真正有用。
编辑:很抱歉再次向您提出错误但我需要的数字只有2位数(123-346)才算无效。
答案 0 :(得分:13)
试试这个:
/^\d{1,2}(-\d{1,2})?$/
一个或两个数字,后跟可选的(连字符后跟一个或两个数字)
答案 1 :(得分:5)
相当容易:
^\d+(-\d+)?$
至少有一个(+
)数字(\d
),后跟一个包含连字符 - 减号(-
)的可选组,然后再重复一个数字。
答案 2 :(得分:2)
对于仅包含该模式的字符串,以下内容应该有效
^(\d{2}-)?\d{2}$
一组2位数后跟负号结尾,一组2位数字,不带减号。