用于以dd-Mmm-yyyy格式验证日期的正则表达式

时间:2015-07-16 19:47:38

标签: regex validation date

我有一个需要验证的文本输入框。用户应该只能以dd-Mmm-yyyy格式输入日期。例如:2013年6月1日至2015年8月31日,等等。或者他们应该能够输入T + 1,T + 2,... T + 99。

我可以用什么样的正则表达式来验证这两种模式。我认为,为了验证dd-Mmnm-yyyy,以下正则表达式起作用:

^(([0-9])|([0-2][0-9])|([3][0-1]))\-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\-\d{4}$

请帮助我!

更新:我只需要单个字母T的正则表达式模式,然后是" +"数字范围从" 1到99"。即,[T + 1 ... T + 99]。用户应该只能在文本字段中输入这些数字。

3 个答案:

答案 0 :(得分:2)

不确定你对T + 1等的意思,但这里是你所需要的最低限度:

^[01][0-9]-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-\d{4}$

您还可以使用i标志使整个事件不区分大小写。

http://www.regexr.com/3bdeu

答案 1 :(得分:2)

如果我正确理解了您的问题,我添加了为原始正则表达式输入匹配(T\+[0-9]+)的可能性。

^((([0-9])|([0-2][0-9])|([3][0-1]))\-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\-\d{4})|(T\+[0-9]+)$

答案 2 :(得分:2)

  然后是" +"和一个从" 1到99"

的数字

尝试:T\+?\d{0,2}其中:

  1. T字面意思" T";
  2. \+? - 零或一加号" +"使用转义反斜杠(或其他转义字符,取决于语言) - 如果没有它,它将被视为元字符' +&#39 ;;额外的'?'唱歌意味着,那之前的角色可能出现,但没有必要
  3. \d{0,2} - 从零到两位数;
  4. DEMO