2013-04-10 57 views
0

我有以下代碼來檢查文本框中的特殊字符。爲什麼我的正則表達式在IE7中不起作用?

var partial = /[*[email protected]#$%^&*~]/; 
var check = function (string) { 
    for (i = 0; i < string.length; i++) { 
     if (partial.test(string[i])) { 
      return true 
     } 
    } 
    return false; 
} 

//的onclick我打電話下面的一個

$('input[type="text"]').each(function() { 
    if (check($(this).val()) == true || $(this).val().length <= 2) { 
     //displayerrormessage 
     noerror += 1; 
    } 
}); 

它適用於所有的瀏覽器,但不是在IE7。
我不知道我需要改變什麼。

任何人都知道這是爲什麼?

+0

爲什麼這個downvoted?這是一個合理的問題。你可以使用@svk格式化你的代碼嗎? – 2013-04-10 12:10:33

+1

使用'test'檢查每個字符是**不是**必需的......您可以簡單地在整個字符串上使用'exec'方法 – Anirudha 2013-04-10 12:14:31

+2

@BenjaminGruenbaum:'這是一個合理的問題'如果有人認爲問題要麼沒有用,不能顯示任何研究工作或者不清楚。在某些人看來,這個問題可能或可能不屬於任何這些類別。我沒有投票,但我只是說。並非所有的用戶都有相同的質量或有用的意見:) – Nope 2013-04-10 12:15:17

回答

1

Internet Explorer 7不支持按索引訪問字符串。

您必須使用charAt方法是兼容IE7:

partial.test(string.charAt(i)) 
相關問題