Javascript数据类型条件

Javascript数据类型条件,javascript,typeof,Javascript,Typeof,今天我发现了一个条件很差的巨魔。但最基本的是 “如果我通过了考试,我就得安排一个聚会。但是如果我考试不及格,我就得专心学习。” 这是一个简单的if,else条件。但我面对的问题太多了。我必须提到我正在学习JS。所以简单的问题对我来说可能很难 我为“考试及格或不及格”设定了if,else if,else条件。但当我输入一个值“通过条件”时,我被打动了 注意:我将“通过”标记为“良好”,将“失败”标记为“不良” 我面对的是什么让我解释一下:( 当我输入时,除了“好”字。然后我需要一条消息来输入“好”

今天我发现了一个条件很差的巨魔。但最基本的是 “如果我通过了考试,我就得安排一个聚会。但是如果我考试不及格,我就得专心学习。”

这是一个简单的if,else条件。但我面对的问题太多了。我必须提到我正在学习JS。所以简单的问题对我来说可能很难

我为“考试及格或不及格”设定了if,else if,else条件。但当我输入一个值“通过条件”时,我被打动了

注意:我将“通过”标记为“良好”,将“失败”标记为“不良”

我面对的是什么让我解释一下:(

  • 当我输入时,除了“好”字。然后我需要一条消息来输入“好”或“坏”

  • 如果我输入任何数字,那么我需要一条消息来输入“good”或“bad”

  • 如果我提交的输入字段没有任何值,那么我需要一条消息来输入“good”或“bad”或其他内容

  • 我自己写了一个剧本,但是我面对太多的未回答的问题

  • 如果我输入以下模式的输入“textnumber” 例如“good123” 然后它显示未定义。我不知道为什么:( 为什么“good123”标记为“typeof”“undefined”

  • 对我来说最重要的事情是,如果我输入“good”,它会显示正确的条件输出,但是如果我输入“good”,它会显示未定义。 我想说的是:如果我输入区分大小写的单词,那么输入不满足条件。在我的示例中,我以某种方式解决了它。但是请找我,有什么方法可以解决这个问题吗

  • 最后,我用我自己的方式制作了一个脚本。可能有其他的方法来创建这个项目,或者可以用其他方式简化脚本。如果你建议我这样做,我将不胜感激。还请建议我如何克服我所面临的问题。有没有其他方法可以不用我的方式来解决这些问题

    问候 里佐医学博士

    
    简单逻辑由Md Rizaur Rahman编写
    函数逻辑(){
    var userInput=document.getElementById(“逻辑”).value;
    var input=userInput.toLowerCase();
    var onlyStr=/^[a-zA-z]+$/;
    var onlyNum=/^[0-9]+$/;
    var输出;
    如果(输入=“良好”){
    output=“第三方”
    }
    否则如果(输入==“坏”){
    output=“请认真学习”
    }
    else如果((input.match(onlyStr))&&(input!=“good”)){
    output=“您输入的字符串中没有“Good”字,请输入Good或Bad”;
    }
    else if(input.match(onlyNum)){
    output=“您输入一个数字,请输入好或坏”;
    }
    else if(input.trim()==“”){
    output=“请输入任意值或输入好或坏”;
    }
    否则{
    output=“您的输入类型被标记为未定义。请输入任何值或输入好或坏”;
    }
    警报(输出);
    }
    提交
    


    它被标记为未定义,因为它不满足上述任何条件(它与正则表达式不匹配,也不是“好”或“坏”)。将正则表达式更改为
    /^[a-zA-z0-9]+$/
    (接受0-9中的数字),并在该
    前面检查数值,如果
    ,则使用
    !isNaN(输入)
    。在检查输入是否等于“好”或“坏”之前,还应将输入更改为小写。要使
    isNaN
    检查正常工作,还需要检查
    输入是否为所有空格(
    如果(!input.trim().length)
    ),因为空格也被视为数字(不是NaN)

    
    简单逻辑由Md Rizaur Rahman编写
    函数逻辑(){
    var userInput=document.getElementById(“逻辑”).value;
    var input=userInput.toLowerCase();
    变量onlyStr=/^[a-zA-z0-9]+$/;
    var onlyNum=/^[0-9]+$/;
    var输出;
    if(input.toLowerCase()=“good”){
    output=“第三方”
    }
    else if(input.toLowerCase()=“坏”){
    output=“请认真学习”
    } 
    如果(!input.trim().length),则为else{
    output=“输入不能为空!”;
    }
    如果(!isNaN(输入)){
    output=“您输入一个数字,请输入好或坏”;
    }
    else如果((input.match(onlyStr))&&(input!=“good”)){
    output=“您输入的字符串中没有“Good”字,请输入Good或Bad”;
    }
    else if(input.trim()==“”){
    output=“请输入任意值或输入好或坏”;
    }
    否则{
    output=“您的输入类型被标记为未定义。请输入任何值或输入好或坏”;
    }
    警报(输出);
    }
    提交
    


    不要使用正则表达式检查类型,而是使用
    typeof
    @Pavitra
    typeof
    总是返回
    string
    1)““good123”与两个正则表达式都不匹配。(它不是“未定义的”。它只是不匹配任何条件)和2)在这一页上效果很好。@Keith在他的代码中,他试图在第3和第4个条件下使用正则表达式检查输入是字符串还是数字。@Johnnymop:User可以在输入字段中输入任何大写或小写字符串。因此,我必须使用“var input=userInput.toLowerCase()”创建一个变量,强制字符串变为小写;“这不是正确的方法吗?