正则表达式日期不为零

时间:2018-11-06 22:38:25

标签: regex

我需要能够允许格式为MM / DD / YYYY的日期,其中在适当的时候前导的月份和日期可以在前导零或不可以在前导

换句话说: 可以接受01-09或1-9个月

01-09或1-9是可以接受的天

我与此非常接近:

/(0[1-9]|1[0-2])\/(0[1-9]|1[0-9]|2[0-9]|3(0|1))\/\d{4}/

由于我的知识有限,我认为这样做会允许前导零(或不可以)

/(0?[1-9]|1[0-2])\/(0[1-9]|1[0-9]|2[0-9]|3(0|1))\/\d{4}/

但是出于我无法解释的原因,该日期允许使用诸如13/31/2008之类的日期。

问题: 我需要一个正则表达式,允许所有可能的日期以MM / DD / YYYY格式显示,其中月份或日期可以包含前导零(或不包含前导零),并且两者都将通过。

编辑:

我正在使用第三方系统,如果用户输入的不是真实日期,则该下游系统将失败。我针对输入的唯一工具是Regex check。 (对于那些否决了我的问题的人)

1 个答案:

答案 0 :(得分:2)

您非常接近,您所需要做的就是锚定正则表达式以开始和结束(并在几个月内也选择零),如下所示:

sudo su - abc -c 'sftp -o <path to ssh key> -o Port=22 <username@server.com>'

现在它将不接受2008年13月31日。