E-Mail-Adresse Validierung schlägt fehl, wenn der domain-name hat einen Bindestrich

Habe ich eine E-Mail-Adresse Validierung regex, Welches ich in den code wie folgt:

public class Test {

  public static void main(String[] args) {
    try {
      String lineIwant = "[email protected]";
      String emailreg = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
      Boolean b = lineIwant.matches(emailreg);

      if (b == false) {
        System.out.println("Address is Invalid");
      }else if(b == true){
        System.out.println("Address is Valid");
      }
    } catch (Exception e) {

      e.printStackTrace();
      System.out.println(e.getMessage());
    }
  }
}

Auf diese spezifische E-Mail-Adresse in dem Beispiel, wird das Boolean-gibt false zurück, obwohl dies eine gültige Kunden-E-Mail-Adresse.

Bin ich besorge, es ist, weil der Bindestrich zwischen ramco und group weil wenn ich Sie entfernen den booleschen Wert true zurück.

Wie kann ich mein regex, um Platz für eine solche E-Mail-Adresse?

  • Nicht das Rad neu zu erfinden - so etwas wie EmailValidator.
  • Für deine Info ich hatte schon Angeschaut, die Frage und die regex nicht überprüft, entweder auf diese spezifische E-Mail-ID
  • Einer der Ansätze hier.
  • Tun Sie etwas dagegen schreiben eine Antwort?
  • Ich habe nicht einverstanden mit dem doppelten, also habe ich wieder geöffnet. Ich verstehe nicht, die down-votes, da Sie geliefert haben, gutes Beispiel-code und beschrieben Ihre Ziele klar und eindeutig. Up-vote von mir.
Schreibe einen Kommentar