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