Вскоре после того, как задал мой вопрос, я обнаружил, что Date.parseExact () может принимать массив строк формата.Как-то мне это не хватало.Мне удалось получить что-то, работающее со следующим кодом:
function validateTime(input) {
return Date.parseExact(input, [
"H:m",
"h:mt",
"h:m t",
"ht","h t"]) != null ||
Date.parseExact(input, [
"h:mtt",
"h:m tt",
"htt","h tt"]) != null;
};
Обратите внимание, что некоторые форматы не могут быть включены одновременно, поэтому я разделил их на два отдельных parseExact() звонки.В этом случае я не смог бы включить ни одну строку, содержащую один t
, с форматными строками, в которых содержался двойной tt
.