Подтвердите дату в Nodejs с помощью MomentJs

Я хочу проверить дату в приложении NodeJS.

Я попробовал библиотеку MomentsJs, но оказалось, что isValid() игнорировала все альфа-символы, это слишком терпимо для меня (когда я указываю формат даты как YYYY-MM-DD, я ожидаю, что дата будет 10 -символьная-строка.):

moment("One,2 and 011, 12-10", "YYYY-MM-DD").isValid()  // returns true instead of false
moment("Seppl"); // parsing seems to work with all values?

Есть ли способ более строго проверять даты?

Как я могу проверить, не удается ли синтаксический анализ даты? (Он возвращает -62167222800000 при печати неправильных дат).

Есть ли другая лучшая библиотека данных Javascript, которая работает с разными форматами даты и поддерживает манипуляции с датами, такие как MomentJs?


person Sonson123    schedule 21.08.2012    source источник
comment
isValid — это 5-строчная функция в momentjs. Если вам нравятся другие функции, почему бы просто не изменить эту функцию в соответствии с вашими потребностями?   -  person Mike Robinson    schedule 21.08.2012
comment
Мне не кажется легким повторно реализовать хорошие методы синтаксического анализа и проверки даты (более 5 строк...). Использование простых регулярных выражений довольно популярно, но я думаю, что правильно выполнить синтаксический анализ даты сложно.   -  person Sonson123    schedule 21.08.2012


Ответы (1)


Библиотека Moment.js не предоставляет никакого метода проверки даты в заданном формате.

moment("‹>", dateFormat) просто проверит заданную дату, но не в заданном формате.

Следующие строки с momentjs.com

Примечание. Он не предназначен для проверки соответствия входной строки строке формата. Поскольку строгость соответствия форматов может варьироваться в зависимости от приложения и бизнес-требований, такая проверка не включена в Moment.js.

http://momentjs.com/docs/#/parsing/is-valid/

person Kiran Nunna    schedule 06.05.2013