ich benutze das
@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"
regexp, um die E-Mail zu validieren
([\w\.\-]+)
- Dies gilt für die Domäne der ersten Ebene (viele Buchstaben und Zahlen, auch Punkt und Bindestrich).
([\w\-]+)
Dies gilt für die Domäne der zweiten Ebene.
((\.(\w){2,3})+)
Dies gilt für Domänen der anderen Ebene (von 3 bis unendlich), die einen Punkt und 2 oder 3 enthalten Literale
Was ist los mit dieser Regex?
BEARBEITEN: Es stimmt nicht mit der E-Mail "[email protected]" überein
c#
regex
validation
Sergey
quelle
quelle
@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,})+)$""
Antworten:
TLDs wie .museum stimmen auf diese Weise nicht überein, und es gibt einige andere lange TLDs. Sie können E-Mail-Adressen auch mithilfe der MailAddress-Klasse überprüfen, wie Microsoft hier in einem Hinweis erläutert :
Dies erspart Ihnen viel Kopfschmerzen, da Sie keinen regulären Ausdruck schreiben (oder versuchen müssen, den Regex eines anderen zu verstehen).
quelle
Ich denke
@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"
sollte funktionieren.Sie müssen es wie schreiben
Seien Sie gewarnt, dass dies fehlschlagen wird, wenn:
Nach dem
@
Symbol befindet sich eine Subdomain .Sie verwenden eine TLD mit einer Länge von mehr als 3, z
.info
quelle
Ich habe einen Ausdruck zum Überprüfen der von mir verwendeten E-Mail-Adressen.
Da keines der oben genannten so kurz oder genau war wie meins, dachte ich, ich würde es hier posten.
Weitere Informationen finden Sie hier: C # - Regulärer Ausdruck per E-Mail
Außerdem wird die RFC-Gültigkeit anhand der E-Mail-Syntax überprüft, nicht jedoch, ob die E-Mail tatsächlich vorhanden ist. Die einzige Möglichkeit, um zu testen, ob eine E-Mail tatsächlich vorhanden ist, besteht darin, sie zu senden und per E-Mail zu senden und den Benutzer überprüfen zu lassen, ob er die E-Mail erhalten hat, indem er auf einen Link klickt oder ein Token eingibt.
Dann gibt es Wegwerfdomains wie Mailinator.com und so. Dadurch wird nicht überprüft, ob eine E-Mail von einer Wegwerfdomäne stammt oder nicht.
quelle
Ich habe ein schönes Dokument auf MSDN dafür gefunden.
Gewusst wie: Überprüfen Sie, ob die Zeichenfolgen im gültigen E-Mail-Format vorliegen: http://msdn.microsoft.com/en-us/library/01escwtf.aspx (überprüfen Sie, ob dieser Code auch die Verwendung von Nicht-ASCII-Zeichen für Internetdomänennamen unterstützt. )
Es gibt 2 Implementierungen für .Net 2.0 / 3.0 und für .Net 3.5 und höher.
Die 2.0 / 3.0-Version ist:
Meine Tests über diese Methode ergeben:
quelle
[me]@whatever.museum
[email protected]
keine gültige E-Mail-Adresse ist?Der folgende Code basiert auf der Implementierung von Microsoft Data Annotations auf Github und ist meiner Meinung nach die vollständigste Validierung für E-Mails:
quelle
Dies erfüllt nicht alle Anforderungen der RFCs 5321 und 5322, funktioniert jedoch mit den folgenden Definitionen.
Unten ist der Code
quelle
!#$%&'*+-/=?^_
. {|} ~ @ example.com` oder dieserDörte@Sörensen.example.com
Bester regulärer Ausdruck für die E-Mail-Validierung
Und es ist Verwendung: -
quelle
Probieren Sie dies für die Größe an:
quelle
Versuchen Sie dies, es funktioniert für mich:
quelle
Dieser Regex funktioniert perfekt:
quelle
Dieser verhindert ungültige E-Mails, die von anderen in den Kommentaren erwähnt werden:
Es verhindert auch E-Mails mit doppelten Punkten:
Testen Sie es mit so vielen ungültigen E-Mail-Adressen, wie Sie finden können.
Siehe Überprüfen der E-Mail-Adresse mit regulären Ausdrücken in C # .
quelle
Warum nicht die EF6-Attribut-basierte E-Mail-Validierung verwenden?
Wie Sie oben sehen können, weist die Regex-Validierung für E-Mails immer eine Lücke auf. Wenn Sie EF6-Datenanmerkungen verwenden, können Sie mit dem dafür verfügbaren EmailAddress-Datenanmerkungsattribut problemlos eine zuverlässige und stärkere E-Mail-Validierung erzielen . Ich musste die Regex-Validierung entfernen, die ich zuvor für E-Mails verwendet hatte, als ich im E-Mail-Eingabefeld einen regexspezifischen Regex-Fehler für Mobilgeräte erhielt. Als das Datenanmerkungsattribut für die E-Mail-Validierung verwendet wurde, wurde das Problem auf Mobilgeräten behoben.
quelle
quelle
Ich verwende den obigen Code, um die E-Mail-Adresse zu bestätigen.
quelle
quelle
quelle
Es wurden viele Versuche unternommen, einen E-Mail-Validator zu erstellen, der nahezu alle weltweiten Anforderungen an E-Mails erfüllt.
Erweiterungsmethode, die Sie aufrufen können mit:
Regex-Musterzeichenfolge erhalten Sie, indem Sie Folgendes aufrufen:
Der Kodex (meistens Kommentare):
quelle
Um Ihre E-Mail-ID zu validieren, können Sie einfach eine solche Methode erstellen und verwenden.
Dies gibt True / False zurück. (Gültige / ungültige E-Mail-ID)
quelle
Dies ist mein bisheriger Lieblingsansatz:
Verwenden Sie dann die erstellte Zeichenfolgenerweiterung wie folgt:
quelle
Lass es mich wissen, WENN es nicht funktioniert :)
quelle
Hier ist unser Regex für diesen Fall:
Es gibt drei Teile, die überprüft werden. Der letzte ist wahrscheinlich der, den Sie brauchen. der spezifische Begriff {2,6} gibt Ihnen die minimale / maximale Länge der TLD am Ende an. HTH
quelle
Versuchen Sie den folgenden Code:
quelle
STRING-SUCHE UNTER VERWENDUNG DER REGEX-METHODE IN C #
Wie validiere ich eine E-Mail durch regulären Ausdruck?
Verwenden Sie die Referenz- String.Regex () -Methode
quelle
1
2
quelle
Ich denke, Ihr Caret und Ihr Dollarzeichen sind Teil des Problems. Sie sollten auch den regulären Ausdruck ein wenig ändern. Ich verwende das nächste @ "[:] + ([\ w .-] +) @ ([\ w -.]) + ((. (\ w) {2,3}) +) "
quelle
Regex-E-Mail-Muster:
quelle
Ich habe Regex.IsMatch () verwendet.
Zunächst müssen Sie die nächste Anweisung hinzufügen:
Dann sieht die Methode so aus:
Aufgrund meiner Logik ist es eine private Methode, aber Sie können die Methode als statisch in eine andere Ebene wie "Dienstprogramme" einfügen und von dort aus aufrufen, wo Sie sie benötigen.
quelle
Es gibt keinen perfekten regulären Ausdruck, aber dieser ist ziemlich stark, denke ich, basierend auf dem Studium von RFC5322 . Und mit der C # -String-Interpolation ist es meiner Meinung nach auch ziemlich einfach zu folgen.
Geprüft mit
NUnit 2.x
.quelle
Ich habe eine FormValidationUtils-Klasse erstellt, um E-Mails zu validieren:
quelle
E-Mail-Validierung mit Regex
Quelle: E-Mail-Validierung c #
Validierung ohne Regex mit MailAddress.MailAddress (String) Klassenkonstruktors
quelle
me@localhost
. Bitte schauen Sie sich diese Seiten an: TLD-Liste ; gültige / ungültige Adressen ; Regex für RFC822 E-Mail-Adresse