Javascript - 大于/小于4位数,可以从0开始?

时间:2015-09-14 11:47:50

标签: javascript

这可能听起来像一个愚蠢的问题,但是在数字检查开始时可能有一个0,并让它有效吗?

这就是我所拥有的:

function checkCosts() {
    var date = document.getElementsByName("date")[0].value;
    var roomtype = document.getElementsByName("roomtype")[0].value;
    var night = document.getElementsByName("night")[0].value;
    var month = date.substring(0, 2);
    var year = date.substring(8, 10);
    var day = date.substring(4, 6);
    var time = month.concat(year);
    var fulldate = day.concat(time);
    if (time >= 0415 && <= 0915) {
        if (roomtype == "Classic") {
            if (night == "3") {
                document.getElementById("cost").innerHTML = "1,480";
            }
        }
    }
}

然而,当我在jslint.com中运行它时,我收到以下错误:

Unexpected '4' after '0'.
if(time >= 0415 && <= 0915){ 
line 9 column 28Unexpected trailing space.
if(time >= 0415 && <= 0915){ 

只有少数不同的陈述中的一个,所有变量都将被使用。

可以将字符串转换为整数,但我不知道如何执行此操作/是否可以正常工作。

4 个答案:

答案 0 :(得分:0)

前导0不是使用int的方式。你应该看看here。 否则,只需使用字符串比较来使用alpabetical顺序。

答案 1 :(得分:0)

无需在数字前添加零。如果第一个数字标识了房间的级别,只需在需要的地方添加它。

答案 2 :(得分:0)

不是将月份与年份连接,而是将月份与月份连接,然后检查。 您需要对逻辑进行一些修改。

function checkCosts() {
    var date = document.getElementsByName("date")[0].value;
    var roomtype = document.getElementsByName("roomtype")[0].value;
    var night = document.getElementsByName("night")[0].value;
    var month = date.substring(0, 2);
    var year = date.substring(8, 10);
    var day = date.substring(4, 6);
    var time = year.concat(month);//Concat year with month.
    var fulldate = day.concat(time);
    if (time >= 1504 && <= 1509) { //Year should be first
        if (roomtype == "Classic") {
            if (night == "3") {
                document.getElementById("cost").innerHTML = "1,480";
            }
        }
    }
}  

如果您尝试将日期转换为数字并想要进行比较,请先使用年份然后按月份。

答案 3 :(得分:-1)

来自:

var time = month.concat(year);

我推断“时间”是一个字符串。

然后你应该在0415上加上引号

字符串使用字母顺序进行比较(我希望您在此比较中不需要全球化):

"04".concat("16") >= "0415"
 -> true
"04".concat("14") >= "0415"
 -> false