2013-04-21 55 views
0

我在JavaScript和CSS中有這個測驗的事情,它會根據一組答案檢查輸入。在我試圖實施RegEx之前,它工作正常。我加入了RegEx來嘗試使答案不區分大小寫。下面是新的代碼:正則表達式不能在JavaScript測驗中工作

function check(a) { 

    var str=a; 
    var patt = new RegExp("/"+key[window.questnum]+"/i"); 
    var anscheck=patt.test(str); 


    if(anscheck==true){ 
     document.getElementById('quiz').style.backgroundColor="#44ee99"; 
     setTimeout(function() { 
      document.getElementById('quiz').style.backgroundColor="#44aaff"; 
     }, 500); 
     newquest(); } 
    else if(a=="") { 
     document.getElementById('answer').style.backgroundColor="#00eeee"; 
     setTimeout(function() { 
      document.getElementById('answer').style.backgroundColor="#FFFFFF"; 
     }, 250); 
     } 
    else { 
     document.getElementById('quiz').style.backgroundColor="#ee9944"; 
     setTimeout(function() { 
      document.getElementById('quiz').style.backgroundColor="#44aaff"; 
     }, 500); 
    } 

這裏是老工作代碼:

function check(a) { 
    if(a==key[window.questnum]){ 
[[etc changing color]] 

任何和讚賞所有幫助。

回答

0

如果在兩個字符串上都使用String.toLowerCase(),則可以檢查相等性。

+0

嘿,感謝的是,它的工作太棒了。無需RegEx!仍然是新的。 – murtaza64 2013-04-21 16:20:18

+0

RegEx被認爲是緩慢的,所以如果你能避免它們,最好是;)。 (你可以接受我的答案,如果它的工作,以便您的問題沒有出現在網站未回答的部分) – charly 2013-04-21 16:40:02

+0

是的,我想,但我不得不等待5分鐘。現在就完成它。感謝您的幫助,但我最終堅持使用RegEx來允許更多可能的答案。 – murtaza64 2013-04-21 16:47:45

1

當使用新的RegExp()時,應該分開放置「i」標誌。

嘗試:

var patt = new RegExp(key[window.questnum], "i"); 
+0

是的,你還應該提及在向RegExp構造函數傳遞字符串時不應包含正則表達式分隔符'/'。 – MikeM 2013-04-21 17:45:41

相關問題