正则表达式2位10个字母/数字



我想做一个正则表达式,但有些东西不适合我,要求如下:

  1. 最小长度为1
  2. 最大长度是12
  3. 前2个符号必须是数字
  4. 后面的10必须是字母或数字

这是我迄今为止

/^[0-9]{0,2}[a-z][A-Z][0-9]{0,10}$/

你们能告诉我我做错了什么吗?

您的模式^[0-9]{0,2}[a-z][A-Z][0-9]{0,10}$在开始处匹配0、1或2位数字。

然后它匹配2个字符[a-z][A-Z]是一个小写字符和一个大写字符a - z,这应该存在于字符串中,并且还使字符串长度至少为2个字符。


您可以将第二个数字设置为可选的,并使用1个字符类用于字母或数字。

的最小是1,长度,最高12。

^(?!d[a-zA-Z])dd?[a-zA-Z0-9]{0,10}$
  • ^字符串起始
  • (?!d[a-zA-Z])负向前看,断言不是a- za -z后面的数字
  • dd?匹配1或2位数字
  • [a-zA-Z0-9]{0,10}匹配0-10次所列范围
  • $字符串结束

Regex演示

或者像@Scratte在评论中建议的那样,不带前瞻性的版本,匹配单个数字和可选的第二个数字,后面跟着0-10个列出的范围:

^d(?:d[A-Za-zd]{0,10})?$

Regex演示

最新更新