信用卡到期日的正则表达式

时间:2012-11-19 23:20:20

标签: regex

  

可能重复:
  Regular Expression to describe Credit Card expiry (valid thru) date

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

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

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

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

[12-99]表示12-99,相当于[1-9]。第二个[0-12]表示相同0-12,相当于[0-2]

你可以选择这样的东西:

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

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