Überprüfen von e-mail mit regulären Ausdruck VB.Net
Ich arbeite an einem kleinen Projekt in VB.Net wo bekomme ich eine Eingabe aus einem Textfeld, und müssen überprüfen, dass diese e-Mail-Adresse.
Fand ich diesen Ausdruck "^[_a-z0-9-]+(.[_a-z0-9-]+)@[a-z0-9-]+(.[a-z0-9-]+)(.[a-z]{2,4})$", aber ich nicht finden können, ein Weg, um zu testen ob es geht.
Möchte ich einige code wie:
if not txtEmail.text = regexString then
something happens..
else
something else happens..
end if
Darf ich Sie auf die Tatsache, dass wenn man bei google nach "vb.net regex", die erste - link gibt Ihnen Schritt-für-Schritt Anleitung dafür?
Es ist eine schöne Frage auf Eintrag bei StackOverflow - ich sehe nichts falsch mit dem bitten diese hier.
Es ist eine schöne Frage auf Eintrag bei StackOverflow - ich sehe nichts falsch mit dem bitten diese hier.
InformationsquelleAutor AndersE | 2008-12-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die
System.Text.RegularExpressions.Regex
Klasse:Ist die wichtigste Sache zu verstehen, zu dieser Antwort ist, dass ich nicht Schreibe den regulären Ausdruck selbst. Es gibt einfach so viele falsche Wege, die scheinen Recht zu sein, und es gibt verschiedene Ebenen von Details, die Sie nehmen könnte dies. Zum Beispiel, wollen Sie das einschränken dieser auf gültige top-level-domains, und wenn ja, wie sind Sie mit der Buchhaltung für die Tatsache, dass Sie nun gelegentlich das hinzufügen von neuen TLDs? Wenn der reguläre Ausdruck, der am besten geeignete Ort für diesen test, oder sollte haben separate code für Sie, dass der check? Auch der Ausdruck in dieser Antwort ist jetzt sehr abgestanden, da es ursprünglich erstellt wurde.
Empfehle ich die Suche nach einer außerhalb Ressource für den Ausdruck, den Sie kennen, werden im Laufe der Zeit beibehalten.
If … Then Return True Else Return False
ist sicherlich in der all-time-top-ten von anti-patterns. :-/Ja: es ist eine schlechte Angewohnheit, erwarb ich bei meinem letzten gig, wo die Politik verhindert die Rückgabe der Ergebnisse von booleschen Ausdrücke direkt. Fixieren Sie die Probe.
Ausdruck ist gebrochen. Siehe stackoverflow.com/questions/369543/...
Regulären Ausdruck für e-mail-Adressen ist grundsätzlich gebrochen. Sie können die Generierung der Gefühl, dass Sie ziemlich viel decken alle Basen, aber am Ende wird es fast immer ein gültiges Muster, dass Sie sich weigern, oder ungültige man Sie lassen aber. Ihrigen nicht decken Apostrophe als gültig, aber Sie sind es.
If ... then Return True Else Return False ist 10 mal besser lesbar als wieder Matchobject. das ist, was es effektiv ist, was Sie tun oben.. Sie haben keine Ahnung, was der Rückgabetyp ist einfach durch einen Blick auf Sie, Sie könnte 400 Zeilen code entfernt vom as boolean. Lesbarkeit ist Trumpf " Ihre "perfekte Muster" der minimalistische code-Verschwendung.. jeden Tag. bessere Lesbarkeit reduziert Fehler. Die meisten Programmierer, die arrogant über Ihre perfekten Muster neigen dazu, die meisten bugs, basierend auf meinen 25yrs Erfahrung.
InformationsquelleAutor Joel Coehoorn
Wählen Sie Ihre Lieblings-regex aus mein Artikel über die passenden E-Mail-Adressen mit einer regex, und stecken Sie es in Visual Basic-code:
Die besten regulären Ausdruck für eine E-Mail-Adresse ist ein umstrittenes Thema, dass ich nicht kommen wollen hier. Mein Artikel beschreibt die Probleme, die Sie beachten sollten, wenn Kommissionierung eine regex. Die regex in Joel Coehoorn s Antwort ist definitiv nicht gut.
InformationsquelleAutor Jan Goyvaerts
Es ist eine große website für diese Art der Sache, http://regexlib.com/. Nicht nur, dass es ein tester-Anwendung, wo Sie können, fügen Sie in einem regulären Ausdruck und es testen, aber es gibt auch eine Bibliothek von regulären Ausdrücken, die Sie verwenden können, mit community-feedback auf Ihre Gültigkeit, etc. Ich bin kein regex-guru, also gehe ich hier wenn ich brauche eine schnelle regulären Ausdruck.
Auch, wenn Sie daran denken, die Entwicklung von regulären Ausdrücken sich selbst, es ist ein hervorragendes tool namens Regex-Buddy, das Ihnen erlaubt, erstellen und testen Sie Ihre regulären Ausdrücke on-the-fly mit einem leicht verständlichen Englisch interpretation deiner regex.
{|}~\w])|([!#$%&'*+\-/=?^_
{|}~\w][!#$%&'*+\-/=?^_{|}~\.\w]{0,}[!#$%&'*+\-/=?^_
{|}~\w]))[@]\w+([-.]\w+)*\.\w+([-.]\w+))$" Quelle und test Seite: regexlib.com/RETester.aspx?regexp_id=2558InformationsquelleAutor Anderson Imes
Möglicherweise off-topic, da es keine regex-Lösung, aber du könntest einfach einige der eingebauten features .NET 2.0:
Ich hatte eine harte Zeit, dies zu brechen, ich habe es mit allem möglichen Müll, E-Mails und verschlang Sie, ohne Ausnahme, und ich nahm diese aus meinem code.
InformationsquelleAutor Rick
Dass regex nicht wirklich... in der Tat... die meisten sind nicht (check-out dieser Artikel, oder diese eine).
Es sei denn, Sie wirklich genießen, Schmerzen, regex ist nicht der richtige Weg für die Validierung einer E-Mail-Adresse.
InformationsquelleAutor chills42
E-Mail-Adresse: RFC 2822 (vereinfacht)
Entspricht einer normalen E-Mail-Adresse. Nicht überprüfen Sie die top-level-domain.
Erfordert die "case-insensitive" - option AUF.
Beispiel ist nicht gebrochen. Es wird nicht überprüft, top-level-domains. Wie ich bereits in meinem Kommentar. Siehe meinen anderen Kommentar, für eine, die funktioniert.
Ich werde nie verstehen, warum jemand würde schreiben Sie eine IF-Anweisung wie die letzten in diesem snippet. Das ist einfach der Wahnsinn. Es sollte sein: Fehler = Nicht FoundMatch
Ja, das wäre kürzer. Ich wollte für Allgemeine Klarheit. So, jetzt wissen Sie, warum jemand würde schreiben Sie eine IF-Anweisung wie die Letzte in diesem snippet 🙂
InformationsquelleAutor Mick