Trotz der weit verbreiteten Verwendung regulärer Ausdrücke zur Validierung von E-Mail-Adressen gibt ein allgemeiner Ausdruck wie der bereitgestellte Anlass zu Bedenken hinsichtlich seiner Wirksamkeit. Der betreffende reguläre Ausdruck zielt darauf ab, Folgendes zu erfassen:
Es gibt jedoch inhärente Einschränkungen dieses Ansatzes:
1. Nicht übereinstimmende TLDs:
Lange TLDs wie .museum werden von der Regex nicht abgeglichen. Darüber hinaus können E-Mail-Adressen mit bestimmten weniger verbreiteten TLDs nicht validiert werden.
2. Mangelnde Robustheit:
Der reguläre Ausdruck behandelt Randfälle möglicherweise nicht effektiv. Beispielsweise können E-Mail-Adressen, die Leerzeichen oder fehlende TLDs enthalten, die Validierung passieren.
Ein alternativer Ansatz
Anstatt sich auf reguläre Ausdrücke zu verlassen, sollten Sie die Verwendung von System.Net in Betracht ziehen. Mail.MailAddress-Klasse zur Validierung von E-Mail-Adressen. Microsoft empfiehlt diesen Ansatz aufgrund seiner höheren Genauigkeit:
public bool IsValid(string emailaddress) { try { MailAddress m = new MailAddress(emailaddress); return true; } catch (FormatException) { return false; } }
Diese Methode umgeht die Notwendigkeit komplexer Regex-Muster, reduziert potenzielle Fehler und erhöht die Zuverlässigkeit der E-Mail-Validierung.
Das obige ist der detaillierte Inhalt vonIst eine E -Mail -Validierung der regulären Ausdrucks zuverlässig oder sollten wir einen anderen Ansatz verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!