Ich arbeite an einer Formularregistrierung für ApplicationUser
. Dort habe ich ein Feld Email or phone
wie Facebook. Ich verwende DataAnnotation
für die Modellvalidierung. In Data annotation
erhalte ich [EmailAddress]
für die Email Validierung und [Phone]
für die Validierung der Telefonnummer. Aber ich brauche etwas wie [EmailAddressOrPhone]
. Wie kann ich das erreichen?
Das erreichen Sie mit Regex
. Sie müssen den Regex für E-Mail und Telefon zusammen kombinieren .
Oder Sie können ein benutzerdefiniertes Attribut erstellen
%Vor%und benutze das
%Vor%Sie sollten Ihre eigenen Regex nicht verwenden, um E-Mail-Adressen zu überprüfen , jedoch würde ich persönlich die folgende Logik verwenden Bestimmen Sie, ob es sich um eine gültige E-Mail-Adresse handelt. Wenn es sich nicht um eine gültige E-Mail-Adresse handelt, können Sie davon ausgehen, dass es sich um eine Telefonnummer handelt.
Der folgende Code verwendet das [EmailAddress]
-Attribut, das Sie bereits erwähnt haben, aber innerhalb des Codes. Auf diese Weise müssen Sie Ihre eigene Art der Validierung der E-Mail-Adresse nicht erfinden.
Natürlich müssen Sie festlegen, wie Sie selbst bestimmen, ob die Telefonnummer korrekt ist, da die Telefonnummern in verschiedenen Ländern unterschiedlich sind. Ich habe gerade einen regulären Ausdruck von dieser Frage als Beispiel genommen.
Tags und Links asp.net-mvc c# regex validation data-annotations