1

このコードはユーザーをWebサイトに誘導することになっていますが、ifステートメントに変数を入れる方法がわかりません。たとえば、「http://www.google.comにアクセスできますか」と入力するとGoogleに移動し、「http://www.yahoo.comにアクセスできますか」と入力するとYahooに行く

<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

これは最善のアプローチではありません。ユーザーは「Canyougoto」で始まるのではなく、プロンプトで何か他のことを書くことができるからです。

しかし、あなたはどのウェブサイトに行くべきかというプロンプトの答えを選ぶことができます:

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

明らかに、それが有効なWebサイトなどであるかどうかをテストする必要があります。

于 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 に答える