正则表达式mm / yyyy

时间:2016-08-24 18:38:09

标签: regex

我有以下正则表达式来验证格式mm/yyyy的日期。月份应该大于当前和年份应该是当前或直到2018年。

^((0[8-9]|(1[0-2])))\/((16))|((0[1-9])|(1[0-2]))\/((2016)|(2017)|(2018))$

如果当前年份应该大于当月。但是比当前更长的年份,它应该验证所有月份。 使用此当前正则表达式,它也会验证08/2016。但是,我希望它向前验证09/2016。这个正则表达式有什么问题?

P.S 由于某些原因,我必须使用此正则表达式验证日期。所以请不要建议使用内置日期函数验证日期

1 个答案:

答案 0 :(得分:0)

^((09|10|11|12]))\/((2016))|((0[1-9])|(1[0-2]))\/((2017)|(20‌​18))$

出了什么问题?

  1. 你有2016年的正确部分
  2. 你在左边部分允许08
  3. 你只检查过" 16"在左侧部分(而不是" 2016")
  4. 顺便说一句:我希望你不要在每个1月的午夜改变这个正则表达式! ;)