Probleme mit der Java-Regex-E-Mail-Validierung
Beim Versuch, E-Mail-Adressen mithilfe eines regulären Ausdrucks zu validieren, ist ein Java-Benutzer auf ein Problem gestoßen, bei dem die Die Validierung schlägt selbst bei wohlgeformten E-Mail-Adressen fehl. Trotz der Tatsache, dass die Regex E-Mail-Adressen abgleicht, wenn sie in einer „Suchen und Ersetzen“-Funktion in Eclipse verwendet wird, schlägt sie fehl, wenn sie mit den Pattern- und Matcher-Klassen von Java verwendet wird.
Die betreffende Regex ist:
\b[A-Z0-9._%-] @[A-Z0-9.-] \.[A-Z]{2,4}\b
Der Benutzer hat verwendete diesen Code in Java:
Pattern p = Pattern.compile("\\b[A-Z0-9._%-] @[A-Z0-9.-] \\.[A-Z]{2,4}\\b"); Matcher m = p.matcher("[email protected]"); if (m.find()) System.out.println("Correct!");
Aber unabhängig davon, ob die E-Mail-Adresse gültig oder ungültig ist, schlägt die Regex-Validierung fehl.
Eine mögliche Lösung
Eine vorgeschlagene Lösung besteht darin, den folgenden Java-Code zu verwenden, der einen ähnlichen regulären Ausdruck verwendet:
public static final Pattern VALID_EMAIL_ADDRESS_REGEX = Pattern.compile("^}[A-Z0-9._% -] @[A-Z0-9.-] \\.[A-Z]{2,6}$", Pattern.CASE_INSENSITIVE); public static boolean validate(String emailStr) { Matcher matcher = VALID_EMAIL_ADDRESS_REGEX.matcher(emailStr); return matcher.matches(); }
Es wurde berichtet, dass dieser Code E-Mail-Adressen zuverlässig validiert.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3