Javascript 格式为mm/yyyy的日期正则表达式不起作用

Javascript 格式为mm/yyyy的日期正则表达式不起作用,javascript,regex,date,Javascript,Regex,Date,我不熟悉regex。我正在使用正则表达式“^((0?[1-9]| 1[012])[-/.](20)?[0-9]{2})$”验证MM/YYYY格式的信用卡到期日 这是我的javascript函数,它检查正则表达式并在TRUE或FALSE中给我响应 function isValidThruDate(valid_till){ var regex = new RegExp('^((0?[1-9]|1[012])[- /.](20)?[0-9]{2})$'); return regex.te

我不熟悉regex。我正在使用正则表达式
“^((0?[1-9]| 1[012])[-/.](20)?[0-9]{2})$”
验证MM/YYYY格式的信用卡到期日

这是我的javascript函数,它检查正则表达式并在TRUEFALSE中给我响应

function isValidThruDate(valid_till){

   var regex = new RegExp('^((0?[1-9]|1[012])[- /.](20)?[0-9]{2})$');
   return regex.test(valid_till);

}
但每当我把日期传给它时,它就会给我一个假作为回报。我无法找出问题所在。

要处理空格:

function isValidThruDate(valid_till){

   var regex = new RegExp('^((0?[1-9]|1[012])[- /.](20)?[0-9]{2})$');
   return regex.test(valid_till.trim());

}

应该这样做

什么日期不适合你?我刚试过这个,效果和预期的一样。注意:此正则表达式不测试日期是否在未来..但是。。过期日期必须在将来:d查看此链接是否可以接受year>2014?将
[-/.]
替换为
\s*(?:[-/.]\s*)?
-如果使用字符串构造Regexp(使用文字
/../../
总是比使用
新Regexp(“…”)更好
除非您需要动态生成的regexp)
function isValidThruDate(valid_till){

   return /^((0?[1-9]|1[012])\s*(?:[-/.]\s*)?(20)?[0-9]{2})$/.test(valid_till);

}