我在其中一个字段中使用 Datetime-local 供用户输入日期和时间;检查是否具有有效的格式;这些应该是可以接受的: '年-月-日 HH' 'yyyy-mm-dd HH:MM'(这就是所需的) 'yyyy-mm-dd HH:MM:SS'
到目前为止,我一直在尝试一些变体,想出了这个,但不幸的是它不起作用。哪里错了?
"\\d{4}-[01]\\d-[0-3]\\d\\s[0-2](\\d:[0-5]\\d:([0-5]\\d)?)?"
最佳答案
虽然,正如评论中所建议的,SimpleDateFormat.parse()
是一个很好的、完美的和抽象的解决方案,但如果你仍然想尝试正则表达式,这应该可行:
\d{4}-[01]\d-[0-3]\d\s[0-2]\d((:[0-5]\d)?){2}
正则表达式有问题:
- 您将
H
(小时中的第二个数字)设置为可选。 - 您还将在
MM
之后将冒号 (:
) 设置为强制,而这应该是可选的。 - 此正则表达式不会检查月份、年份和小时的组合。我的也没有检查。
关于Java正则表达式检查日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43845215/