可能重复:
Regular Expression to describe Credit Card expiry (valid thru) date
我正在尝试找到一个正则表达式模式来验证4位数的信用卡到期日期。格式为YYMM
我试过[12-99]{2}[0-12]{2}
但这允许00作为一个月
所以我想我真的需要一种方法来匹配第3和第4位数字以及0到12之间的数字,同时考虑到前导零
有什么想法吗?
答案 0 :(得分:3)
[12-99]
表示1
或2-9
或9
,相当于[1-9]
。第二个[0-12]
表示相同0-1
或2
,相当于[0-2]
。
你可以选择这样的东西:
(1[2-9]|[2-9][0-9])(0[1-9]|1[0-2])
正如您所看到的,检查numeric ranges对于正则表达式来说有点麻烦。如果您在编程语言中使用它(而不是工具或XSD限制),您应该只检查(\d\d)(\d\d)
然后使用编程语言的整数不等运算符验证两个捕获的数值范围。这也允许您使有效年份的下限取决于当前年份(因此,到2013年,前两位数不再允许12
,而无需更改代码)。