Running moment.js, 2.2.1moment.js проверяющие неверную дату "2013-10-311"
moment("2010-10-319", ["YYYY-MM-DD"]).isValid()
... возвращает true
и объект момент должен быть установлен на 31 октября 2010 года анализатор кажется раздеться посторонние символов любого рода:
moment("2010-10-31a", ["YYYY-MM-DD"]).isValid(); // true
страньше, если добавить дополнительный выбор формата, то «зачистка» становится ограниченным только один символ! (Не должны ли быть проверочными строками формата?)
moment("2010-10-319", ["MM/DD/YYYY", "MM-DD-YYYY", "YYYY-MM-DD"]).isValid(); // true
moment("2010-10-3199", ["MM/DD/YYYY", "MM-DD-YYYY", "YYYY-MM-DD"]).isValid(); // false (!!!)
Это поведение по дизайну? Я не понимаю, почему.
EDIT: комментатор нашел еще один случай, когда дополнительные символы за один, действительно, раздели:
moment("2010-10-319qr", ["MM/DD/YYYY", "MM-DD-YYYY", "YYYY-MM-DD"]).isValid(); // true (!)
Вот это в действии: http://jsfiddle.net/grahampcharles/r42jg/6/ (обновлено с новым делом)
Я использую отчет («2010-10-319qr», [«ММ/ДД/ГГГГ», «ММ-ДД-ГГГГ», «ГГГГ-ММ-ДД»]); и это дает // true. –
Интересный поворот - так что зачистка несовместима. Я обновил скрипку. –