try catch没有捕获无效日期

时间:2013-04-03 16:26:11

标签: javascript date

我正在尝试验证日期输入,所以如果它是正确的,我会处理一种方式,如果无效,我会处理另一种方式......

var date, datestring, e;

datestring = "2012-03-222";

try {
  date = new Date(datestring);
  /* Ends up logging `Invalid Date`
  */

  console.log(date);
} catch (_error) {
  e = _error;
  /* Should come here and log `Error: Invalid Date` or the likes
  */

  console.log("Erorr: " + e);
}

我可以检查返回的字符串,看看它是否为Invalid Date,但我很惊讶try/catch不适合这种情况,并担心可能还有其他错误消息我不匹配。

我该如何处理这个问题?

1 个答案:

答案 0 :(得分:5)

如果日期对象无效,则不会抛出错误。有一种描述in this related question的方法将确定日期是否有效。