Ich habe viele Regex-E-Mail-Überprüfungen in SO gefunden, aber keine gefunden, die eine leere Zeichenfolge akzeptieren. Ist dies nur über Regex möglich? Nur leere Zeichenfolge oder nur E-Mail akzeptieren? Ich möchte dies nur auf Regex haben.
127
^
, in denen Sie effektiv nach einer E-Mail oder nichts in der Mitte einer Zeichenfolge suchen. Dafür(email_regex)?
ist es besser geeignet.^$
funktioniert das nicht, aber es^(?!.)
funktioniert: [^
Beginn der Zeichenfolge,(?!)
negativer Lookahead, ein.
beliebiges Zeichen - ohne Zeilenvorschub]passende leere Zeichenfolge oder E-Mail
Übereinstimmung mit einer leeren Zeichenfolge oder E-Mail, aber auch mit einer beliebigen Anzahl von Leerzeichen
Weitere Informationen zum E-Mail-Matching-Regex selbst:
http://www.regular-expressions.info/email.html
quelle
Die obigen Antworten funktionieren ($ für leer), aber ich habe es gerade versucht und es funktioniert auch, wenn man einfach so leer lässt:
Gleiches in umgekehrter Reihenfolge
quelle
Ordnen Sie eine E-Mail keinem regulären Ausdruck zu. Es ist extrem hässlich und lang und kompliziert und Ihr Regex-Parser kann wahrscheinlich sowieso nicht damit umgehen. Versuchen Sie, eine Bibliotheksroutine zu finden, um sie abzugleichen. Wenn Sie nur das Praktische lösen wollen Problem des Abgleichs einer E-Mail-Adresse möchten (dh wenn Sie einen falschen Code wünschen, der (normalerweise) funktioniert), verwenden Sie den Link "regulär-ausdrücke.info", den eine andere Person gesendet hat.
Was die leere Zeichenfolge betrifft,
^$
wird sie von mehreren Personen erwähnt und funktioniert einwandfrei.quelle
Dies wird gelöst, es akzeptiert leere Zeichenfolgen oder genaue E-Mail-ID
quelle
Ich ziehe es vor
/^\s+$|^$/gi
, leere und leere Räume zu finden.quelle
Wenn Sie es in Schienen verwenden, können Sie die Aktivierungsaufzeichnungsvalidierung festlegen
allow_blank: true
Wie:
quelle