正则表达式字母数字,但是当它获得数字时,则只有数字

regex alphanumeric, but when it gets a numeric, then only numeric

我需要验证一个必须以字母开头的输入,然后它可以是字母数字,但一次是数字;它必须是字符串末尾的数字。

[a-z][a-z,0-9]{1,5}

这只是部分工作。因此它可以正确验证

a1
abc12
ab123

但我不想

a1b2c1

所以一旦它得到一个数字,其余的必须是数字。

试试这个:

^(?=.{2,6}$)([a-z]+[0-9]*)$

首先检查行首到行尾的2-6 个字符。它们是什么字符并不重要 - 您只是检查长度。

然后,1 个或多个字母后跟任意数量的数字。由于您已经检查了 2-6 个字符,所以您并不关心后面有多少个字母和多少个数字。起初,我认为列出所有可能性会复杂得多,但积极的前瞻性做了很多工作

https://regex101.com/r/HYQIf6/5

这应该适用于任何长度的字符串:

^[a-z]+([a-z]*|\d*)$

这将 return 如果字符串为真:

  • 以 a 到 z 的一个或多个字母开头
  • 后跟零个或多个:字母或数字直到结尾

查看 Regex101

的比赛

编辑:

这也有效:

^[a-z]+\d*$

查看新内容regex