JavaScript数据类型条件

时间:2018-08-03 20:07:02

标签: javascript typeof

今天,我发现巨魔几乎没有病情。但基本是 “如果我通过考试,那么我必须安排一个聚会。但是,如果我考试不及格,那么我就必须专心学习。”

这是一个简单的if,else条件。但是我面临太多问题。我不得不提到我正在学习JS。对我来说,这么简单的问题似乎很难。

我提出了“考试通过或失败”的其他条件。但是,当我输入价值证明“通过条件”时,我感到震惊。

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

我所面对的让我解释一下:(

  1. 当我输入“好”字除外。然后我需要输入“好”或“不好”的消息

  2. 如果我输入任何数字,则需要输入一条消息以输入“好”或“坏”

  3. 如果我提交的输入字段没有任何值。然后我需要输入“好”或“不好”之类的消息

我亲手制作了一个剧本。但是我面临太多未解决的问题。

  1. 如果我按照此模式“ textnumber”输入输入 例如。 “ good123” 然后显示未定义。我不为什么:( 为什么将“ good123”标记为“ typeof”“ undefined”?

  2. 对我来说最神秘的事情。如果输入“良好”,则显示正确的条件输出,但是如果输入“良好”,则显示未定义。 我的意思是:如果输入区分大小写的单词,则输入不满足条件。在我的示例中,我以某种方式解决了它。但是请找我,有什么办法可以解决这个问题。

最后,我用自己的方式编写了一个脚本。可以使用其他任何方式来创建此项目,也可以通过其他方式简化脚本。如果您建议我,我将不胜感激。还请建议我如何克服所面临的问题。没有我的方式,可以通过其他任何方式解决这些已注意到的问题。

问候 里扎尔博士

<!--The Script Is Made By Md Rizaur Rahman from https://stackoverflow.com/users/9192572/md-rizaur-rahman-->
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Simple Logic By Md Rizaur Rahman</title>
</head>
<body>
<script>
function logic() {
    var userInput = document.getElementById("logic").value;
    var input = userInput.toLowerCase();
    var onlyStr = /^[a-zA-z]+$/;
    var onlyNum =/^[0-9]+$/;
    var output;
    if(input === "good"){
        output = "Lets Party"
    }
    else if(input === "bad"){
        output = "Please Study Attentively"
    }
    else if ((input.match(onlyStr)) && (input !== "good")){
        output = "You Enter String Without \"Good\" Word. Please Enter Good or Bad";
    }
    else if(input.match(onlyNum)){
        output = "You Enter A Number. Please Enter Good or Bad";
    }
    else if (input.trim() == ""){
        output = "Please Enter Any Value or Please Enter Good or Bad";
    }
    else{
        output = "Your Input Type Is Marked As Undefined. Please Enter Any Value or Please Enter Good or Bad";
    }
    alert (output);
}


</script>

<input type="text" id="logic">
<button onclick="logic()" type="submit" id="input">Submit</button>
<p id="html_output"></p>

</body>
</html>

1 个答案:

答案 0 :(得分:0)

它被标记为未定义,因为它不满足以上任何条件(它不匹配正则表达式,也不是“好”或“坏”)。将正则表达式更改为/^[a-zA-z0-9]+$/(接受0到9之间的数字),然后使用else if将检查数字值放在!isNaN(input)的前面。在检查输入等于“好”还是“坏”之前,还应该将输入更改为小写。为了使isNaN检查正常运行,您还需要检查input是否全部为空格(if(!input.trim().length)),因为空格也被视为数字(不是NaN)。

<!--The Script Is Made By Md Rizaur Rahman from https://stackoverflow.com/users/9192572/md-rizaur-rahman-->
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Simple Logic By Md Rizaur Rahman</title>
</head>
<body>
<script>
function logic() {
    var userInput = document.getElementById("logic").value;
    var input = userInput.toLowerCase();
    var onlyStr = /^[a-zA-z0-9]+$/;
    var onlyNum =/^[0-9]+$/;
    var output;
    if(input.toLowerCase() === "good"){
        output = "Lets Party"
    }
    else if(input.toLowerCase() === "bad"){
        output = "Please Study Attentively"
    } 
    else if(!input.trim().length){
      output = "Input can not be empty!";
    }
    else if(!isNaN(input)){
     output = "You Enter A Number. Please Enter Good or Bad";
    }
    else if ((input.match(onlyStr)) && (input !== "good")){
        output = "You Enter String Without \"Good\" Word. Please Enter Good or Bad";
    }
    else if (input.trim() == ""){
        output = "Please Enter Any Value or Please Enter Good or Bad";
    }
    else{
        output = "Your Input Type Is Marked As Undefined. Please Enter Any Value or Please Enter Good or Bad";
    }
    alert (output);
}


</script>

<input type="text" id="logic">
<button onclick="logic()" type="submit" id="input">Submit</button>
<p id="html_output"></p>

</body>
</html>