Почему строка с пробелом и числом может быть проанализирована в Date? - PullRequest
0 голосов
/ 12 февраля 2019

Я работаю над функцией проверки даты для пользовательского рендера в моем веб-приложении.Когда я получаю строку типа «abc», я пытаюсь разобрать ее в Date, используя Date.parse(), и она возвращает NaN, поскольку она не разбирается.Интересная часть возникает, когда я получаю строку, содержащую несколько чисел, разделенных как токен строки (то есть «abc 1»), встроенный метод parse возвращает метку времени.Я не понимаю, почему это происходит.JS думает, что это формат даты?

Я пытаюсь проанализировать разные строки, и мне любопытно:

Date.parse("abc") => NaN
Date.parse("abc1") => NaN
Date.parse("abc123") => NaN
Date.parse("abc 1") => timestamp
Date.parse("abc 123") => timestamp
Date.parse("abc 123456") => timestamp
Date.parse("abc 1234567") => NaN
const isDate = string => !isNaN(Date.parse(string) /* returns timestamp */);

isDate("abc 123"); // returns true

Если кто-то может сказать мне причину, почему это происходит, и любойпредложение о том, как решить эту проблему, не используя дополнительную библиотеку (т.е. момент), было бы здорово!

...