尝试抓住javascript

时间:2017-08-08 14:59:53

标签: javascript html try-catch

我正在尝试使用java脚本中的try catch验证日期输入,但以下代码无法正常工作。 我希望输入日期不是日期时的错误,捕获应该执行,但这是我得到的。看到没有新的日期,没有显示我期望的东西。

console.log("min date :")
    try{
         minDate = new Date(elminDate.value)
    }
    catch(e){
        console.log("error::")
        console.log(err.name)
        console.log("changed min")
         minDate = new Date()
    }
    console.log(minDate)

    console.log("max date :" )
    try{
         maxDate = new Date(elmaxDate.value)
    }
    catch(err){
        console.log("error::")
        console.log(err.name)
        console.log("changed max")
        maxDate = new Date()
    }
    console.log(maxDate)

回复:

[Log] min date : (home.html, line 93)
[Log] Tue Aug 01 2017 02:00:00 GMT+0200 (CEST) (home.html, line 103)
[Log] max date : (home.html, line 105)
[Log] Invalid Date (home.html, line 115)

1 个答案:

答案 0 :(得分:2)

Date构造函数不会在无效日期上抛出异常,而是在Date对象中生成NaN值。你可以测试一下:

console.log("date :");
date = new Date(elDate.value);
if (isNaN(date)) {
    console.log("error: Invalid Date");
    console.log("changed date to now");
    date = new Date();
}
console.log(date)