2012-07-11 107 views
0

有人能告訴我如何客戶端的正則表達式驗證從正則表達式不同,檢查服務器上做了什麼?正則表達式驗證差異

任何對asp.net驗證控件的引用都應該被讚賞。

+0

M}這裏的業餘...我力知道。 謝謝! – aromore 2012-07-11 17:21:58

回答

0

這些差異主要基於所使用的正則表達式引擎的差異。 Javascript有它自己的正則表達式引擎,與.net的正則表達式引擎相比,它的工作方式有所不同。

兩者都基於Perl正則表達式引擎,但肯定存在一些差異。

更多信息可以在這裏找到。

Regex engine

+0

感謝fr da鏈接! – aromore 2012-07-11 17:14:11

+0

不,他們不是「基於Perl的正則表達式引擎。」雖然在大多數現代的正則表達式引擎中都有着重要的共同點,但將歸因點歸於Perl是非常不準確的。一個簡單的「正則表達式起源」谷歌將提供更準確的歷史意義。 – JamieSee 2012-07-11 17:25:48

+0

這是一個公平點。我並不是真的想這麼說,它直接基於Perl引擎,而是與它有許多相似之處。我真的想說,javascript和.net的引擎之間存在差異,因爲其中大多數都是。正如你所說,這個主題的快速谷歌將提供更詳細的信息。 – stevethethread 2012-07-11 17:29:41

1

服務器端和客戶端驗證的主要區別在於驗證器攔截處理。請參閱ASP.NET Page Life Cycle Overview以瞭解在服務器上進行驗證的位置。爲了更好地理解驗證是如何工作的客戶端上看到Client-Side Validation for ASP.NET Server ControlsHow to: Validate with a Custom Function for ASP.NET Server Controls

對於RegularExpressionValidator,它包括運行在客戶端上的Javascript和運行在服務器上的.NET代碼。如果Javascript被禁用,客戶端驗證根本不運行。根據瀏覽器的不同,如果某些功能不受支持,ASP.NET將嘗試正常降級客戶端功能。服務器端驗證總是會發生。