Javascript 仅显示字符串的一部分

Javascript 仅显示字符串的一部分,javascript,Javascript,在下面的代码中,我试图输出您键入的日期和打印文本。datetime的工作方式与它的显示方式相同,但当我实现打印功能时,它会输出“ime” 打印功能在您键入“print”以及之后的任何内容时起作用。例如,输入“打印hi there”输出“hi there”。如有任何反馈,将不胜感激 <html> <body> <div id="out" name="out"></div> <script type="text/Jav

在下面的代码中,我试图输出您键入的日期和打印文本。datetime的工作方式与它的显示方式相同,但当我实现打印功能时,它会输出“ime”

打印功能在您键入“print”以及之后的任何内容时起作用。例如,输入“打印hi there”输出“hi there”。如有任何反馈,将不胜感激

<html>
    <body>

    <div id="out" name="out"></div>

    <script type="text/JavaScript">
    function theProcess(){      
        alert("> Your typed "+enter);
    }

    function datetime(){
        var enter = "";
        var currentdate = new Date(); 
        var datetime = "Date and Time today: " + currentdate.getDate() + "/"
            + (currentdate.getMonth()+1)  + "/" 
            + currentdate.getFullYear() + " @ "  
            + currentdate.getHours() + ":"  
            + currentdate.getMinutes() + ":" 
            + currentdate.getSeconds();

        if (enter == 'datetime')
        {
            alert(datetime)
        }
        else
        {
            alert(" You typed, "+enter);
        }
    }

    </script>

    <script type="text/JavaScript"> 

    function addOutput(s){
        document.getElementById("out").innerHTML=document.getElementById("out").innerHTML+s+"\n";
    }

    // turns a string into an array and displays it

    var enter = '';
    enter = prompt('enter text')
    var str = "print a b c d";
    var list = str.split(" ");
    for(i=0; i<list.length;i++){
        var message=list[i];
        switch(message){

        case "print":
            alert(message.substring(5))

        }
    }



    </script>   
    </body>
</html>

函数调用进程(){
警报(“>您键入的”+输入);
}
函数datetime(){
var enter=“”;
var currentdate=新日期();
var datetime=“今天的日期和时间:“+currentdate.getDate()+”/”
+(currentdate.getMonth()+1)+“/”
+currentdate.getFullYear()+“@”
+currentdate.getHours()+“:”
+currentdate.getMinutes()+“:”
+currentdate.getSeconds();
如果(输入=='datetime')
{
警报(日期时间)
}
其他的
{
警报(“您键入,”+输入);
}
}
函数addOutput(s){
document.getElementById(“out”).innerHTML=document.getElementById(“out”).innerHTML+s+“\n”;
}
//将字符串转换为数组并显示它
var enter='';
enter=提示符('enter text')
var str=“打印a b c d”;
var list=str.split(“”);
对于(i=0;i
var str=“打印a b c d”;
//使用单个警报打印“print”之后的每个参数
var list=str.split(“”);

对于(i=1;i让我们分解这个命令解析器。将str拆分为空格处的部分:

var str = "print a b c d";
var list = str.split(" ");
现在,列表包含数组
[“print”、“a”、“b”、“c”、“d”]
。接下来,您将遍历数组的这五个元素中的每一个,并将元素放入消息变量中

for(i=0; i<list.length;i++){
    var message=list[i];
如果我理解正确,这是错误的。您不希望在这里出现循环。请摆脱循环,只需执行
switch(list[0]){


对于print命令,您打印
消息。子字符串(5)
。您似乎弄乱了变量。
消息
此时只是“打印”,因此
消息。子字符串(5)
将为空。您可能是指
str.substring(6)
(删除“打印”).

请正确缩进您的代码。如果您查找and的含义,您会更好地理解。此外,如果您没有帮助,只需在
案例“print”
中添加
警报(消息)
,然后考虑子字符串。此外,我非常确定您需要
var list=enter.split(“”);
,因为您当前忽略了用户键入的内容。甚至比拆分和循环更简单:
if(str.indexOf(“print”)==0)alert(str.substring(6));
for(i=0; i<list.length;i++){
    var message=list[i];
    switch(message){
    case "print":