2010-12-18 16 views
0

Ich muss Validierung für ein Textfeld, wo der Benutzer ihre E-Mail-Adresse eingibt ... Dies ist kein Pflichtfeld obwohl so möchte ich das Formular zu ermöglichen, wenn die eingereicht werden Textfeld enthält den Standardtext ("E-Mail-Adresse").asp.net Validierung, wenn Feld nicht erforderlich ist

Ich habe den Code, den ich bereits geschrieben habe, um sicherzustellen, dass eine gültige E-Mail-Adresse eingegeben wird, gepostet.

<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

Und Ihre Frage/Problem ist? – Oded

+0

Ich muss den Validator ändern, damit das Formular gesendet werden kann, wenn der Wert im Textfeld leer ist oder "E-Mail-Adresse". – Tom

Antwort

2

umschließen Sie einfach die gesamte Regex in (?:...)? es optional zu machen.

Aber Sie verwenden nicht eine sehr gute E-Mail-Validierung Regex. Abgesehen von der Tatsache, dass E-Mail-Adressen können nicht zuverlässig durch reguläre Ausdrücke validiert werden, könnten Sie ein wenig besser machen von

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

mit diesem noch nicht alle gültigen Adressen fangen, und einige ungültige Adressen übereinstimmen. Aber kurz vor der RFC 2822 Regex-Implementierung, die etwa vier oder fünf Zeilen Code umfasst, ist dies wahrscheinlich ein guter Kompromiss.

Verwandte Themen