为什么包含空格和数字的字符串可以解析为Date?

时间:2019-02-12 00:47:42

标签: javascript date-parsing

我正在为我的Web应用程序中的自定义渲染开发日期验证功能。当我得到像“ abc”这样的字符串时,我要做的是尝试使用Date.parse()将其解析为Date,由于它不可解析,因此返回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

如果有人可以告诉我发生这种情况的原因,以及关于如何在不使用额外库的情况下(即片​​刻)解决此问题的建议,那就太好了!

0 个答案:

没有答案