代码应该将用户带到网站,但我不知道如何将变量放在if语句中。例如,在他们输入“你能转到http://www.google.com”后,它会转到谷歌,如果他们输入“你能转到http://www.yahoo.com”它会转到雅虎
<script type="text/javascript">
var question=prompt ("Type in a question");
if (question==("Can you go to " /*a website*/ )){
window.location.href = /*the website that the person typed in after to*/;
}
}
</script>
答案 0 :(得分:3)
正如Oleg所说,使用JavaScript的“常规”表达式。为了说明,这是使用正则表达式进行的示例:
<script type="text/javascript">
var question=prompt ("Type in a question");
var match = /^Can you go to (.*)/.exec(question);
if (match) {
window.location.href = match[1];
}
</script>
答案 1 :(得分:1)
当您想要将字符串与模式匹配或从中提取数据时,JavaScript中最好的选择是regular expressions。使用String.match
来测试您的字符串是否符合所需的模式,并在相同的检查中提取您需要的数据,然后在作业中使用提取的URL。
答案 2 :(得分:0)
这不是最好的方法,因为用户可以在提示符下写一些其他内容,而不是以“你能不能去”开头。
但您可以选择要访问哪个网站的提示答案:
var question = prompt("Which website to go to", "");
//first test if not empty:
if (question != null && question != "") {
window.location.href = question;
}
显然你应该测试它是否是一个有效的网站等。
答案 3 :(得分:0)
您要解析字符串并提取URL部分。同时检查原始字符串上的==将失败,因为它将包含一个URL,因此它不会匹配。该剧本还有一个额外的内容。
使用javascript函数.substr(start,length)来处理部分字符串,请参阅http://www.w3schools.com/jsref/jsref_substr.asp上的示例
请注意此比较将区分大小写,因此您可以考虑使用.toUpperCase()
在匹配时使用.substr(start)而不使用length来使其余的字符串包含URL
<script type="text/javascript">
var question=prompt("Type in a question");
if (question.toUpperCase().substr(0,14)==("CAN YOU GO TO " /*a website*/ )){
window.location.href = question.substr(14)/*the website that the person typed in after to*/;
}
</script>