if,else如果不工作javascript

if,else如果不工作javascript,javascript,jquery,Javascript,Jquery,我正在编写我自己的JARVIS(有点像,没有比钢铁侠更接近的了) 但是elseif语句不起作用 function ttalk(code) { varpo = code; if (varpo == "good morning") { var currentdate = new Date(); var hours = currentdate.getHours(); if (hours >= 12) { d

我正在编写我自己的JARVIS(有点像,没有比钢铁侠更接近的了) 但是elseif语句不起作用

function ttalk(code) {
    varpo = code;
    if (varpo == "good morning") {
        var currentdate = new Date();
        var hours = currentdate.getHours();
        if (hours >= 12)  {
            dn=PM;
        } else {
            dn=AM;
        }
        varso = "Good Morning, Sir. The time now is "  + currentdate.getHours() + "  " + currentdate.getMinutes() + dn;
    } else if (varpo == "hello") {
        varso = "reading your F.B. Notifications.";
    } else {
        varso = "Not Got That, Sir";
    }

    speaker.speak("en", varso);
}
当我说早上好的时候,它确实在说现在的时间,但是当我说你好的时候,它说不明白,先生,为什么

带输入字段的完整代码,用于测试

Enter Text To Play:
<input id="text">&nbsp;(Recognized text for voice will also appear here)
<br><br>
<button class="btn btn-success" onclick="stalk()">Talk It!</button>
<button class="btn btn-success" onclick="listen()">Recognize My Voice</button>

<script>
    var speaker = new RobotSpeaker();
    var listener = new AudioListener();

function stalk() {
 var varpo = document.getElementById("text").value;
 if (varpo == "good morning") {
    var currentdate = new Date();
    var hours = currentdate.getHours();
          if (hours >= 12)  { dn=PM;} else {dn=AM;}
       varso = "Good Morning, Sir. The time now is "  + currentdate.getHours() + "  " + currentdate.getMinutes() + dn;
} 
else if (varpo == "hello") {
  varso = "reading your F.B. Notifications.";
}
else {
   varso = "Not Got That, Sir";
}
        speaker.speak("en", varso);
    }
输入要播放的文本:
(语音识别文本也将出现在此处)


说吧! 认得我的声音吗 var扬声器=新的机器人扬声器(); var listener=新的AudioListener(); 功能柄(){ var varpo=document.getElementById(“text”).value; 如果(varpo==“早上好”){ var currentdate=新日期(); var hours=currentdate.getHours(); 如果(小时数>=12){dn=PM;}否则{dn=AM;} varso=“早上好,先生。现在的时间是“+currentdate.getHours()+”+currentdate.getMinutes()+dn; } else if(varpo==“hello”){ varso=“正在阅读您的F.B.通知。”; } 否则{ varso=“不明白,先生”; } 演讲者。说(“恩”,瓦索); }
请尝试使用javascript提供的内部字符串比较

function ttalk(code) {
    varpo = code;
    if (varpo.localeCompare("good morning")==0) {
        var currentdate = new Date();
        var hours = currentdate.getHours();
        if (hours >= 12)  {
            dn=PM;
        } else {
            dn=AM;
        }
        varso = "Good Morning, Sir. The time now is "  + currentdate.getHours() + "  " + currentdate.getMinutes() + dn;
    } else if (varpo.localeCompare("hello")==0) {
        varso = "reading your F.B. Notifications.";
    } else {
        varso = "Not Got That, Sir";
    }

    speaker.speak("en", varso);
}
谢谢
Amit

我尝试了你的代码,它工作正常,只是你需要将PM和AM分别更改为“PM”和“AM”

下面是我执行“早上好”时的输出

早上好,先生。现在的时间是下午14点58分

当你通过“早上好”时,它显示如下。由于区分大小写


不明白,先生

我很惊讶它居然会说“早上好”,因为你有大写字母…你有没有试着把
varpo
记录到控制台上?上面写着“阅读你的FB通知”。如果我把
'hello'
传进来。你一定是路过别的地方。尝试
var varpo=code.trim()不,我实际说了,api将其转换为“早上好”。您是否尝试记录变量
varpo
以检查值?问题是字符串是由
google speak recognition api
生成的。。如果您手动输入字符串,它肯定会工作Yupp@DyrandzFamador这正是我想说的问题。问题既不是关于案例,也不是关于修剪。@IdidntKnewIt,您是否尝试检查变量
code
的值以检查实际字符串值?@IdidntKnewIt,我的意思是检查从
谷歌语音识别API
生成的文本。。您的文本是由语音识别生成的吗?