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

Javascript - greater than/less than using 4 digits, that can start with 0?

本文关键字:开始 数字 大于 小于 4位 Javascript      更新时间:2023-09-26

这可能听起来像一个愚蠢的问题,但是有可能在数字检查的开始有一个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){ 

这里只是几个不同语句中的一个,所有的变量都将被使用。

可以将字符串转换为整型,但我不知道如何做到这一点/如果它会工作

前导0不是使用int型的方式。你应该看看这里。否则只需使用字符串比较的字母顺序。

不需要在数字前面加零。如果第一个数字表示房间的级别,只需在需要的地方添加它。

不是将月与年连接,而是将年与月连接,然后检查。你需要对你的逻辑做一些修改。

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";
            }
        }
    }
}  

如果您试图将日期转换为数字并希望进行比较,请先使用年,然后使用月

from this:

var time = month.concat(year);

我推断"time"是一个字符串。

那么你应该在0415上加引号

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

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