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