regex - 正则表达式字母数字,但当它得到一个数字时,那么只有数字
问题描述
我需要验证必须以字母开头的输入,然后它可以是字母数字,但一旦是数字;它必须是数字到字符串的末尾。
[a-z][a-z,0-9]{1,5}
这只是工作的一部分。所以它正确地验证了
a1
abc12
ab123
但我不想
a1b2c1
所以一旦它得到一个数字,其余的必须是数字。
解决方案
试试这个:
^(?=.{2,6}$)([a-z]+[0-9]*)$
首先检查从行首到行尾的 2-6 个字符。它们是什么字符甚至都没有关系——你只是在检查长度。
然后,1 个或多个字母后跟任意数量的数字。由于您已经检查了 2-6 个字符,因此您并不真正关心后面有多少个字母和多少个数字。起初,我认为列出所有可能性会复杂得多,但积极的前瞻性做了很多工作