如何检查正则表达式前两个字符可以是字母或数字,但其他字符只能是数字

时间:2013-09-20 13:33:21

标签: regex

如何用正则表达式检查前2个字符可以是字母还是数字,但其他字符只能是数字?

Valid:
123456
AA123456
A123456

Not valid:
AAA
AAA123456

尝试/^[a-zA-Z][0-9]{2}[\d]$/i,但它不起作用,

请咨询

3 个答案:

答案 0 :(得分:4)

您已将第一部分分为两个字符类([a-zA-Z][0-9]),而{2}量词仅适用于第二部分。试试这个:

[a-zA-Z0-9]{2}\d*

答案 1 :(得分:0)

您没有正确使用字符类([..])。使用此:

/^\w{2}\d+$/

您不需要 [a-zA-Z]i“忽略大小写”标记,您可以使用任一方法。 但是没有必要构建一个类:\w是“任何单词字符”的快捷方式 - a..z,A..Z,0..9,加上(谢谢,Arshajii){{1} }字符。如果不允许使用最后一个,请使用_

由于在前两个类之后只能跟随任意数量的数字,因此可以使用[A-Z\d] - 无需将其包装到自己的字符类中。类版本为\d+,但同样,还有快捷方式[0-9]

答案 2 :(得分:0)

对于你的情况,我认为最优雅的正则表达式是:

^[a-zA-Z]{0,2}[\d]+$

还取决于2个字母后必须有多少位数(如果+是有效字符串,请将*替换为AA

相关问题