我正在尝试提出一个正则表达式,该正则表达式将拒绝提供的日期格式的非连续字符。我想尽可能地灵活,因此我决定我的日期格式字符串可以包含YY或YYYY,MM或MMM,DD或DDD,hh mm和ss。
我已经计算出的一些正则表达式-例如,匹配以下内容将显示月份是3个字符的格式:
([M])\1{2}
关于检查日期格式是否不包含非连续字符,我一无所知。例如,以下日期格式应有效:
YYYY-MM-DD hh:mm:ss
hh:mm:ss YYYY-MM-DD
DD/MMM/YYYYhh-mm
但是这些格式应该被拒绝
YYYY-MM-DD hh:mm:ss YYYY // year appears twice
hh:mm:ss YYYY-MM-DD hh // hour appears twice
DD/MMM/YYYYhh-mm m // m not consecutive with other m
为了将来的扩展,我希望允许使用非连续的特殊字符(/-。:)等,并拒绝所有非连续的字母数字字符。虽然区分大小写-毫米和毫米不同(如上所述)
请明确说明-我不是要验证实际日期-我只是想验证日期格式字符串。