现在,如果我有200011,那么正则表达式假设是有效的日期-这是2000年1月1日,但我想限制它的格式为YYYYMMDD,这样它将只接受20000101作为有效日期。我如何才能做到这一点?
我的代码:
^(?:(?:(?:(?:(?:[1-9]\d)(?:0[48]|[2468][048]|[13579][26])|(?:(?:[2468][048]|[13579][26])00))([-\/.]?)(?:0?2\1(?:29)))|(?:(?:[1-9]\d{3})([-\/.]?)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[13-9]|1[0-2])\2(?:29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8])))))$发布于 2018-09-25 22:38:14
您需要在所有0之后删除?:
^(?:(?:(?:(?:(?:[1-9]\d)(?:0[48]|[2468][048]|[13579][26])|(?:(?:[2468][048]|[13579][26])00))([-\/.]?)(?:02\1(?:29)))|(?:(?:[1-9]\d{3})([-\/.]?)(?:(?:(?:0[13578]|1[02])\2(?:31))|(?:(?:0[13-9]|1[0-2])\2(?:29|30))|(?:(?:0[1-9])|(?:1[0-2]))\2(?:0[1-9]|1\d|2[0-8])))))$请参阅regex demo
例如,最后一个0?[1-9]将匹配0一次或零次,然后是一个非零数字。当您删除?量词时,将需要0。
https://stackoverflow.com/questions/52500755
复制相似问题