正则表达式使用格式为YYYY-MM-DD在PHP中验证日期
发布时间:2020-12-14 06:24:47 所属栏目:百科 来源:网络整理
导读:我正在尝试制作日期正则表达式验证器.我遇到的问题是我使用的是带有“日期”类型的输入字段,它就像Chrome中的魅力一样;它在Chrome中打开了一个日历,但在其余部分它什么也没做,所以我决定手动输入其余的日期. 这是我的错误抛出消息(我正在寻找YYYY-MM-DD格式)
我正在尝试制作日期正则表达式验证器.我遇到的问题是我使用的是带有“日期”类型的输入字段,它就像Chrome中的魅力一样;它在Chrome中打开了一个日历,但在其余部分它什么也没做,所以我决定手动输入其余的日期.
这是我的错误抛出消息(我正在寻找YYYY-MM-DD格式): $date_regex ='#^(19|20)dd[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$#'; $hiredate = $_POST['hiredate']; if (!preg_match($date_regex,$hiredate)){ $errors[] = 'Your hire date entry does not match the YYYY-MM-DD required format.'; } 我知道有很多这方面的例子,但我已经尝试了20个,我无法解决它.也许我错过了一些东西. 这是输入字段,如果有些相关: <input type="date" name="hiredate" />
你的正则表达式没有用,因为你有未转义/分隔符.
将以YYYY-MM-DD格式验证日期的正则表达式如下: ^(19|20)dd[-/.](0[1-9]|1[012])[-/.](0[1-9]|[12][0-9]|3[01])$ 它将验证年份从19或20开始,该月份不大于12且不等于0且该日期不大于31且不等于0. Example Online 使用您的初始示例,您可以像这样测试它: $date_regex = '/^(19|20)dd[-/.](0[1-9]|1[012])[-/.](0[1-9]|[12][0-9]|3[01])$/'; $hiredate = '2013-14-04'; if (!preg_match($date_regex,$hiredate)) { echo '<br>Your hire date entry does not match the YYYY-MM-DD required format.<br>'; } else { echo '<br>Your date is set correctly<br>'; } Example Online (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |