【问题标题】:Date regex of format mm/yyyy is not working格式 mm/yyyy 的日期正则表达式不起作用
【发布时间】:2015-01-10 04:59:55
【问题描述】:

我是正则表达式的新手。我正在使用正则表达式 '^((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);

}

但是每当我把日期传递给它时,它都会给我 FALSE 作为回报。我无法弄清楚是什么问题。

【问题讨论】:

  • 哪个日期不适合您?我刚试过这个,它按预期工作。注意:此正则表达式不会测试日期是否在未来..
  • 但是.. 过期日期必须在未来 :D
  • 接受year > 2014可以吗?
  • \s*(?:[-/.]\s*)?替换[- /.] - 如果你使用字符串来构造正则表达式,记得加倍反斜杠(使用文字/..../总是比使用new Regexp('...')更好,除非你需要动态生成正则表达式)

标签: javascript regex date


【解决方案1】:

处理空格:

function isValidThruDate(valid_till){

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

}

应该做的伎俩

【讨论】:

    【解决方案2】:
    function isValidThruDate(valid_till){
    
       return /^((0?[1-9]|1[012])\s*(?:[-/.]\s*)?(20)?[0-9]{2})$/.test(valid_till);
    
    }
    

    【讨论】:

      猜你喜欢
      • 2023-04-07
      • 1970-01-01
      • 2017-07-10
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 2019-04-03
      相关资源
      最近更新 更多