JavaScript的。警告字符串

时间:2016-11-15 04:56:24

标签: javascript string class alert

我是JavaScript的新手。所以,我试图解决一个练习 - 宣布电影放映时间。我已经检查了它的错误,但我一无所获。当我打开index.html文件时没有任何反应。这是我的代码:

    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Cinema</title>
    <script src="cinema.js"></script>
</head>
<body>

</body>
</html>

cinema.js

var movie1={
    name: "Star Wars: Force Awakens",
    showtimes: ["3:00pm","7:00pm","11:00pm"],
    genre: "Cult Classic",
    rating: 2
};
var movie2={
    name: "Doctor Strange",
    showtimes: ["5:00pm","9:00pm"],
    genre: "Action",
    rating: 5
};

window.onload = function (){
    var nextShowing=getNextShowing(movie1);
    alert(nextShowing);
    nextShowing=getNextShowing(movie2);
    alert(nextShowing);

}
function getNextShowing(movie){
    var now=new Date().getTime();

    for(var i=0;i<movie.showtimes.length;i++){
        var showtime = getTimeFromString(movie.showtimes[i]);
        if((showtime-now)>0) {
            return "Next showing of "+movie.name+" is "+movie.showtimes[i];
    }
}
    return null;
}

function getTimeFromString(timeString){
    var theTime = new Date();
    var time = timeString.match(/(\d+)(?::(\d\d))?\s*(p?) /);
    theTime.setHours( parselnt(time[1]) +(time[3] ? 12 : 0) );
    theTime.setMinutes( parseInt(time[2])|| 0 );
    return theTime.getTime();
}

哪里可能有问题?

UPD:

function getNextShowing(movie){
    var now=new Date().getTime();

    for(var i=0;i<movie.showtimes.length;i++){
        var showtime = getTimeFromString(movie.showtimes[i]);
        if((showtime-now)>0) {
            return "Next showing of "+movie.name+" is "+movie.showtimes[i];
    }
}
    return null;
}

function getTimeFromString(timeString){
    var theTime = new Date();
    var time = timeString.match(/(\d+)(?::(\d\d))?\s*(p?) /);
    theTime.setHours( parseInt(time[1])+(time[3] ?12 : 0) );
    theTime.setMinutes(parseInt(time[2])|| 0 );
    return theTime.getTime();
}

仍然没有发生

3 个答案:

答案 0 :(得分:1)

  1. parseInt函数名称不正确。请将parselnt替换为parseInt
  2. 匹配模式不正确。这是更新的

    var time = timeString.match(/(\d+)(?::)(\d+)(am|pm)/);
    

答案 1 :(得分:0)

你的parseInt拼写错误(你把它写成了parselnt)。

当您继续学习Javascript时,您调试的第一个调用端口之一应该是打开浏览器的开发人员工具/控制台。

例如,在Google Chrome中,您可以按Ctrl + Shift + i。

执行此操作

控制台应该提供有关您的javascript遇到的任何运行时错误的详细信息,这将是您诊断问题的第一步。

答案 2 :(得分:0)

我可以在这里看到拼写错误theTime.setHours( parselnt(time[1]) +(time[3] ? 12 : 0) );它应该是parseInt