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