2011-01-13 57 views
1

在Chrome和Firefox下面的正則表達式的作品,但不是IE7:密碼的正則表達式工作於Chrome和Firefox,而不是IE7

^((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,20})$

它必須包含至少8個字符,至少有上大寫字母和數字。當我在IE7中嘗試這個時,我必須輸入14個字符才能進行驗證。有人可以解釋爲什麼和什麼是所有3種瀏覽器的正確表達。

我正在使用asp:RegularExpressionValidator來驗證密碼。

+1

*困惑*。這被標記爲C#和ASP.NET,所以大概這個正則表達式運行serverside和瀏覽器是不相關的?如果這是JavaScript,請標記爲這樣。 – 2011-01-13 16:09:23

+0

那麼,正則表達式是一個asp:RegularExpressionValidator,它是客戶端驗證。我相信默認情況下,正則表達式運行在客戶端,除非我指定了一個服務器端驗證事件處理程序。糾正我,如果我錯了? – Xaisoft 2011-01-13 16:10:32

回答

0
str.length > 8 
/[A-Z]/ 
/\d/ 

三個檢查與一個怪物正則表達式。哪些更容易閱讀,並不會導致在IE瀏覽器中的問題?

if(str.length > 8 && str.search(/[A-Z]/) != -1 && str.search(/\d/) != -1) 
{ 
    //Don't use big long regex when you don't need it 
}