正则表达式字母数字,但是当它获得数字时,则只有数字
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 个字符,所以您并不关心后面有多少个字母和多少个数字。起初,我认为列出所有可能性会复杂得多,但积极的前瞻性做了很多工作
这应该适用于任何长度的字符串:
^[a-z]+([a-z]*|\d*)$
这将 return 如果字符串为真:
- 以 a 到 z 的一个或多个字母开头
- 后跟零个或多个:字母或数字直到结尾
查看 Regex101
的比赛
编辑:
这也有效:
^[a-z]+\d*$
查看新内容regex
我需要验证一个必须以字母开头的输入,然后它可以是字母数字,但一次是数字;它必须是字符串末尾的数字。
[a-z][a-z,0-9]{1,5}
这只是部分工作。因此它可以正确验证
a1
abc12
ab123
但我不想
a1b2c1
所以一旦它得到一个数字,其余的必须是数字。
试试这个:
^(?=.{2,6}$)([a-z]+[0-9]*)$
首先检查行首到行尾的2-6 个字符。它们是什么字符并不重要 - 您只是检查长度。
然后,1 个或多个字母后跟任意数量的数字。由于您已经检查了 2-6 个字符,所以您并不关心后面有多少个字母和多少个数字。起初,我认为列出所有可能性会复杂得多,但积极的前瞻性做了很多工作
这应该适用于任何长度的字符串:
^[a-z]+([a-z]*|\d*)$
这将 return 如果字符串为真:
- 以 a 到 z 的一个或多个字母开头
- 后跟零个或多个:字母或数字直到结尾
查看 Regex101
的比赛编辑:
这也有效:
^[a-z]+\d*$
查看新内容regex