常规exp。 2个字符和5个数字或仅5个数字

时间:2015-02-16 12:42:32

标签: regex

我需要使用reg。 exp用于验证输入字段。 有效输入为:2个字符和5个数字或仅5个数字。

我已尝试过以下reg exp:

^([a-zA-Z]{2}.*[0-9]{5}|[0-9]{5})$

但这允许我输入ex。 :aaa12345

这个表达式似乎至少有2个字符(可选)和5个数字。我在哪里做错了?

编辑:订单总是2个字符(可选),然后是5个数字(例如aa12345)

2 个答案:

答案 0 :(得分:2)

您必须删除第一个表达式中间的.*

^([a-zA-Z]{2}[0-9]{5}|[0-9]{5})$

答案 1 :(得分:1)

^(?:(?:\d{5})|((?!(?:\d*[a-zA-Z]){3})[a-zA-Z0-9]{7}))$

试试这个。看看演示。

https://www.regex101.com/r/rK5lU1/31

这将使您

1)Enter 5 digits

2)Enter 5 digits and 2 characters in any order.The `lookahead` makes sure that the characters are not more than `2`.