我需要验证视频时间戳。所以基本上在我的情况下,小时数可以大于24.在Java中进行此验证的最佳方法是什么?对于标准的24小时验证,我执行以下操作。
private static DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("HH:mm:ss");
LocalTime.parse("20:00:12", dateFormat);
我也希望在我的前端Javascript中进行类似的验证。
对于正常的24小时模式,我使用正则表达式进行了测试:new RegExp("(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}")
;是否有类似于输入掩码的Jquery插件,我可以使用它在UI文本框中强制执行此模式?
答案 0 :(得分:2)
对于Java,为什么不使用第一原则:
String timestamp = "343:45:37";
String[] components = timestamp.split(":");
boolean validTimestamp = false;
int h = -1, m = -1, s = -1;
try {
if (validTimestamp = components[1].length() == 2 && components[2].length() == 2) {
h = Integer.valueOf(components[0]);
m = Integer.valueOf(components[1]);
s = Integer.valueOf(components[2]);
}
} catch (Exception e) {
e.printStackTrace();
}
validTimestamp = validTimestamp && h >= 0 && m >= 0 && m < 60 && s >= 0 && s < 60;
答案 1 :(得分:0)
显然我无法添加评论,所以我会将其作为答案发布。
我的策略是使用<input type="time">
代码https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/time。
还有一个旧的浏览器支持的polyfill。 https://github.com/jonstipe/time-polyfill
除此之外,我喜欢依靠后端来提供大多数验证和错误响应。