2009-10-10 55 views
2

我有一個正在使用的asp.net RegularExpressionValidator檢查TextField的正則表達式。Javascript正則表達式瀏覽器不一致?

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

的例子字符串我已經迷迷糊糊的 'RedCoal1'

火狐=匹配
IE8 =匹配
瀏覽器=匹配

IE7 =不匹配

爲什麼! !

回答

6

在WSH的RegExp中使用IE is just broken執行lookahead。這個bug通常會在這種情況下彈出,試圖使用一個正則表達式來同時驗證幾件事情。

再加上一些舊版本的瀏覽器根本不支持lookahead(它不在原來的JavaScript規範中,儘管它現在在ECMA-262-3中)。總而言之,最好避免在瀏覽器RegExp中使用Lookahead。

最好將每次檢查(每個字符類別和長度)分成手動驗證步驟。

+0

是的,我有同樣的經歷。所以我所做的就是避免對特定驗證器進行客戶端驗證。 – 2009-10-10 06:11:15

相關問題