匹配以下日期格式的最简单的正则表达式是什么:
mm-dd-yy
即 01-01-13
我总是使用\d{2}-\d{2}-\d{2}
,但请注意,这允许像13-13-13
.
编写一个仅匹配有效日期的完整正则表达式非常复杂,几乎不值得付出努力。
另一个需要注意的是,这种格式非常模糊。如果可能,请使用yyyy-mm-dd
或dd-mm-yyyy
。
这取决于,如果你只想匹配数字:
\d\d-\d\d-\d\d
但是,如果您想确保任何日期都有效,那么它应该是不精确的或不可能的(无法处理 2 月)。
这是一个更好的正则表达式,但仍然不完美:
(1[0-2]|0\d)-([0-2]\d|3[0-1])-\d\d
只是为了好玩,这里有一个只匹配有效日期的。由于您使用的是两位数年份,因此假定00
为 2000 年(闰年);如果您正在寻找 1900 或 2100,则需要对其进行修改。
/^((0[13-9]|1[012])-(0[1-9]|[12]\d|30)|([13578]|1[02])-31)-\d\d|02-(0[1-9]|[12][0-8])-\d\d|02-29-([02468][048]|[13579][26])$/
这很简单:
/^\d\d-\d\d-\d\d$/
但是你应该在这个简单的格式检查之后使用日期库检查日期是否有效:没有合理的正则表达式会检查你不是 2 月 29 日的非 bissextile 年份。
/[1-3]{1,2}-[1-9]{1,2}-[1-9]{1,2}/