2010-12-18 109 views
0

我需要在用戶輸入他們的電子郵件地址的文本框中設置驗證...這不是必填字段雖然所以我想允許表單被提交如果文本框包含默認文本(「電子郵件地址」)。asp.net驗證時,不需要字段

我已經發布了代碼,我已經確保輸入有效的電子郵件地址。

<asp:RegularExpressionValidator CssClass="errorpopup" Display="Dynamic" ID="regexpEmail" 
    ValidationGroup="mySubmit" runat="server" ErrorMessage="<strong>Please enter a valid email address.</strong>" 
    ControlToValidate="tbEmail" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" 
    SetFocusOnError="true" /> 
+1

而你的問題是? – Oded 2010-12-18 15:37:58

+0

我需要修改驗證器以允許在文本框中的值爲空或「電子郵件地址」時提交表單。 – Tom 2010-12-18 15:47:24

回答

2

只是包圍整個正則表達式中(?:...)?,使其可選。

但你沒有使用非常好的電子郵件驗證正則表達式。除了一個事實,即電子郵件地址不能可靠地通過正則表達式驗證,你可以做,通過使用

^(?:[\w.%+-][email protected](?:[\w-]+\.)+[A-Za-z]{2,6}\s*|Email address)?$ 

這仍然無法趕上所有有效地址的更好一點,並會匹配一些無效的地址。但是缺少跨越大約四到五行代碼的RFC 2822實現正則表達式,這可能是一個很好的折衷。

相關問題