如何用正则表达式检查前2个字符可以是字母还是数字,但其他字符只能是数字?
Valid:
123456
AA123456
A123456
Not valid:
AAA
AAA123456
尝试/^[a-zA-Z][0-9]{2}[\d]$/i
,但它不起作用,
请咨询
答案 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
。