如何限制正则表达式中的字符?

问题描述:

我想实现的场景一样,如何限制正则表达式中的字符?

2014-000000-01

[[0-9]{0,3}\-[0-9]{0,5}\-[0-9]{0,1}] 

我想限制用户不能破折号 破折号后前插入多于或少于4个字符,他可以进入的6个字符少于六次,在第二次短划线之后,他不能插入小于或大于两次。

任何人都可以指出我如何实现它。

由于提前

+0

*不要插入多于或少于4个字符* - 这是否意味着*正好4个字符*? – 2014-10-30 16:44:25

+1

正好4:'{4}',6或更少:'{1,6}',正好2:'{2}'。 – sp00m 2014-10-30 16:45:36

+0

您的要求似乎不符合您的尝试,但通过删除最外面的'['和']'你几乎就在那里。 – tripleee 2014-10-30 16:47:51

根据上下文,您可能需要使用开始和结束锚。如果它在验证器中,有时暗示要匹配整个字符串。如果不是,它仍然会匹配,例如,即使在开始时有4位以上的数字。

这与主播: ^\d{4}-\d{1,6}-\d{2}$

/[0-9]{4}-[0-9]{0,6}-[0-9]{1,}/ 

http://regex101.com/r/mC2qM4/1