2010-05-01 119 views
0

使用正則表達式驗證組件驗證電子郵件地址時,必須添加額外的RequiredFieldValidator以確保存在值。ASP.Net - 使用正則表達式驗證電子郵件地址?

我主要採用CustomFieldValidator處理此問題,並使用Javascript處理此問題。

有沒有更好的方法來做到這一點?

回答

2

爲什麼不使用RegularExpressionValidatorRequiredFieldValidator

如果您使用CustomFieldValidator,則需要執行javascript檢查和服務器端檢查。一起使用其他兩個驗證控件不需要額外的實現,除非設置了一些屬性,並且這是使用WebForms進行此類驗證的預期方式。

考慮下一位將會出現的程序員,看看您的不同設置,並想知道爲什麼您在所有這些額外的工作中都不需要時纔去做。

0

如果你喜歡做的,你可以使用下面的功能,後臺代碼:

Function checkEMail(ByVal email As String) As Boolean 

     Dim pattern As String = "^((?>[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+\x20*|""((?=[\x01-\x7f])[^""\\]|\\[\x01-\x7f])*""\x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+)+|""((?=[\x01-\x7f])[^""\\]|\\[\x01-\x7f])*"")@(((?!-)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?(?<!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)>)$" 

     Dim emailCheck As Match = Regex.Match(email, pattern) 
     If emailCheck.Success Then 
      checkEMail = True 
     Else 
      checkEMail = False 
     End If 

     Return checkEMail 

    End Function 
相關問題