【发布时间】:2018-04-09 14:20:21
【问题描述】:
我想知道如何将年份设为强制性 4 位数字
参考:https://stackoverflow.com/a/26972181/3541735
我的正则表达式稍作调整,不允许使用“/”或“。”并且只有几个月的数字:
^(?:(?:31(-)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(-)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(-)(?:0?2)\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(-)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$
【问题讨论】:
-
{4,}是您要搜索的内容。但是这个正则表达式太复杂了......需要一些时间来弄清楚把它放在哪里...... -
这似乎可以通过验证
DateTime::createFromFormat的输出得到更好的解决 -
对于纯正则表达式解决方案,我已修改正则表达式以强制要求 4 位年份。虽然,正则表达式有点复杂。
标签: php regex validation date