1

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

Valid:
123456
AA123456
A123456

Not valid:
AAA
AAA123456

试过/^[a-zA-Z][0-9]{2}[\d]$/i了,还是不行

请指教

4

3 回答 3

4

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

[a-zA-Z0-9]{2}\d*
于 2013-09-20T13:35:04.913 回答
1

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

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

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

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

于 2013-09-20T13:42:21.493 回答
0

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

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

还取决于 2 个字母后必须有多少位数字(替换+*ifAA是有效字符串)。

于 2013-09-20T13:49:09.633 回答