使用正則表達式驗證組件驗證電子郵件地址時,必須添加額外的RequiredFieldValidator以確保存在值。ASP.Net - 使用正則表達式驗證電子郵件地址?
我主要採用CustomFieldValidator處理此問題,並使用Javascript處理此問題。
有沒有更好的方法來做到這一點?
使用正則表達式驗證組件驗證電子郵件地址時,必須添加額外的RequiredFieldValidator以確保存在值。ASP.Net - 使用正則表達式驗證電子郵件地址?
我主要採用CustomFieldValidator處理此問題,並使用Javascript處理此問題。
有沒有更好的方法來做到這一點?
爲什麼不使用RegularExpressionValidator
和RequiredFieldValidator
?
如果您使用CustomFieldValidator
,則需要執行javascript檢查和服務器端檢查。一起使用其他兩個驗證控件不需要額外的實現,除非設置了一些屬性,並且這是使用WebForms進行此類驗證的預期方式。
考慮下一位將會出現的程序員,看看您的不同設置,並想知道爲什麼您在所有這些額外的工作中都不需要時纔去做。
如果你喜歡做的,你可以使用下面的功能,後臺代碼:
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