Требовать ввода строки для момента, чтобы иметь определенный формат - PullRequest
0 голосов
/ 07 декабря 2018

Не похоже, что функция парсинга даты работает так, как я ожидаю.Документация гласит следующее:

Если вы знаете формат входной строки, вы можете использовать это для анализа момента.

moment("12-25-1995", "MM-DD-YYYY");

У меня есть следующий код:

moment(value, "MM/DD/YYYY");

Во время тестирования я ввожу строки, которые не соответствуют MM/DD/YYYY, и все же они успешно анализируются какдопустимая дата момента.

Например, 1-1-asdf разрешается до 01/01/2018.

Как указать один или несколько форматов даты, которые следует использовать для анализа строки, и если она не совпадаетв указанном формате проанализированный момент будет недействительным?

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Момент имеет «строгий» режим для разбора дат:

moment("1-1-asdf", "MM/DD/YYYY").toString() => valid, parsed as 01/01/2018
moment("1-1-asdf", "MM/DD/YYYY", true).toString() => invalid, parsed as "Invalid date"

Подробнее см. https://momentjs.com/docs/#/parsing/string-format/.

0 голосов
/ 07 декабря 2018

Для быстрой проверки вы можете использовать проверку регулярных выражений:

if (!/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/.test(value)) {
  // Invalid date string
}
...