首页 > 解决方案 > 正则表达式字母数字,但当它得到一个数字时,那么只有数字

问题描述

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

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

这只是工作的一部分。所以它正确地验证了

a1
abc12
ab123

但我不想

a1b2c1

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

标签: regexnumericalphanumeric

解决方案


试试这个:

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

首先检查从行首到行尾的 2-6 个字符。它们是什么字符甚至都没有关系——你只是在检查长度。

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

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


推荐阅读