1

可能重复:
描述信用卡到期(有效至)日期的正则表达式

我正在尝试找到一个正则表达式模式来验证 4 位数的信用卡到期日期。格式是YYMM

我试过[12-99]{2}[0-12]{2} 了,但这允许 00 作为一个月

所以我想我真的需要一种方法来匹配第 3 位和第 4 位数字与 0 到 12 之间的数字,同时考虑前导零

有任何想法吗?

4

1 回答 1

3

[12-99]表示1or2-99,相当于[1-9]. 与第二个相同的[0-12]意思是0-1or 2,相当于[0-2]

你可以这样做:

(1[2-9]|[2-9][0-9])(0[1-9]|1[0-2])

如您所见,使用正则表达式检查数字范围有点麻烦。如果您在编程语言中使用它(而不是工具或 XSD 限制),您可能应该使用编程语言的整数不等式运算符检查(\d\d)(\d\d)并验证两个捕获的数字范围。这也将允许您使有效年份的下限取决于当前年份(因此,到 2013 年,12前两位数字不再允许,无需更改代码)。

于 2012-11-19T23:22:56.487 回答