在IF语句中创建变量

时间:2012-05-16 16:46:09

标签: javascript

代码应该将用户带到网站,但我不知道如何将变量放在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>

4 个答案:

答案 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>