1

该代码应该将用户带到一个网站,但我不知道如何将变量放入 if 语句中。例如,在他们输入“Can you go to http://www.google.com ”后,它会转到 Google,如果他们输入“Can you go to 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>
4

4 回答 4

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>
于 2012-05-16T16:58:29.183 回答
1

当您想将字符串与模式匹配或从中提取数据时,JavaScript 中最好的选择是正则表达式。用于String.match测试您的字符串是否符合所需的模式并在同一检查中提取您需要的数据,然后在您的作业中使用提取的 URL。

于 2012-05-16T16:54:52.523 回答
0

这不是最好的方法,因为用户可以在提示符下写其他东西,而不是从“你能去吗”开始。

但是您可以选择访问哪个网站的提示的答案:

var question = prompt("Which website to go to", "");
//first test if not empty:
if (question != null && question != "") {
    window.location.href = question;
}

显然你应该测试它是否是一个有效的网站等。

于 2012-05-16T16:55:54.690 回答
0

您想要解析字符串并提取 URL 部分。在原始字符串上检查 == 也会失败,因为它将包含一个 url,因此它不会匹配。并且该脚本上有一个额外的 }。

使用 javascript 函数 .substr(start,length) 处理部分字符串,请参见http://www.w3schools.com/jsref/jsref_substr.asp上的示例

请注意,此比较将区分大小写,因此您可以考虑使用 .toUpperCase()

在匹配时使用 .substr(start) 没有长度来获得包含 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>
于 2012-05-16T16:56:44.360 回答