正则表达式描述信用卡到期(有效期)日期

时间:2011-11-03 09:18:01

标签: regex

我需要一个正则表达式来验证信用卡到期日期。请注意,“日期”的格式为MM / YY,其中YY是没有世纪的年份,MM是月份(从01到12)。我不需要YY在某个有限的范围内,但只需要MM。 提前谢谢。

3 个答案:

答案 0 :(得分:17)

这个正则表达式完成了这项工作:

(0[1-9]|1[0-2])\/[0-9]{2}

请注意,它有一个捕获组,根据您的正则表达式引擎,您可以使其无法捕获:

(?:0[1-9]|1[0-2])\/[0-9]{2}

答案 1 :(得分:0)

修改为什么你不需要年度范围的要求...因为, 1.您接受为答案的正则表达式未通过您的验收标准为“12/99900” 2.即使你有一个更好的正则表达式,它也容易出错并且更多维护工作,因为允许处理过期日期......

一般情况下,限制正在变化的动态数据不应使用模式匹配进行验证 - 除非模式也发生变化

答案 2 :(得分:0)

currentDate = new Date()
currenYear = currentDate.getFullYear()

ones_number = currenYear % 10
tens_number = Math.floor(currenYear % 100 / 10)

regrexStr   = '^((0[1-9])|(1[0-2]))\/?((' + tens_number + '[' + ones_number + '-9])|([' + (tens_number + 1) + '-9][0-9]))$'

这可以从现在开始直到地球结束,格式为MMYY或MM / YY