2012-05-16 105 views
1

代碼應該將用戶帶到網站,但我不知道如何將變量放入if語句中。例如後,他們鍵入「你可以去http://www.google.com」,那就去谷歌,如果他們在輸入「你可以去http://www.yahoo.com」當你想匹配的字符串時,它會去雅虎在IF語句中創建變量

<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> 
+1

我不明白,你想測試輸入的是一個有效的網址嗎? – Andre

+0

或者a)「if」是不必要的或者b)「if」正在驗證重定向,並且只有在與if匹配時纔會被重定向...如果是'b',只需使用if(question == (「你可以去http://www.urlYouWantToAllowToBeRedirected.com」))' – ajax333221

回答

3

由於奧列格說,使用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

根據模式或從中提取數據,JavaScript中最好的選擇是regular expressions。使用String.match來測試您的字符串是否符合所需的模式,並在相同的檢查中提取您需要的數據,然後在您的任務中使用提取的URL。

0

這不是最好的方法,因爲用戶可以在提示符處寫入其他內容,而不是以「您能否繼續」開頭。

但你可以選擇提示的答案,其中網站去:

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

很顯然,你應該測試它是否是一個有效的網站等

+0

我試圖創建一個AI,它可以回答你問的任何問題,比如3 + 3是什麼,它會回答,如果你告訴它去一個網站,它會。所以你的解決方案將無法工作。 – kirill2485

0

要解析字符串並提取URL部分。同時檢查原始字符串==將失敗,因爲它將包含一個URL,因此它不會匹配。並且該腳本還有一個額外的}。

使用javascript函數.substr(開始,長度)與部分字符串的工作,例如看在http://www.w3schools.com/jsref/jsref_substr.asp

提防這個比較將是大小寫敏感的,所以你可能會考慮使用.toUpperCase()

上匹配使用.substr(開始),而長度有包含字符串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>