Java E-Mail adressen überprüfung

scue

Cadet 4th Year
Registriert
Aug. 2008
Beiträge
68
Hi Leute,

ich komme nicht klar mit meiner Emailadressenüberprüfung :(

die methode überprüft ob @ und . vorhanden sind, und anschließend ob die teilarrays nicht null sind. allerdings erhalte ich eine fehlermeldung, das der array outofbounds ist. who knows why?

gruß

PHP:
	//Überprüfung der Mailadresse
	public static String eMailUeberpruefen(String email){
		
		/*if (email.contains("@")){
			return email;
		}
		System.out.println("==> Dies ist keine gültige Emailadresse. <==");
		return eMailUeberpruefen(lesenVonDerKonsole("Bitte geben Sie die Emailadresse ein"));
		*/
		
		if (email.contains("@")){
			if (email.contains(".")){
				String[] checkEMail = email.split("@");
				if(checkEMail.length == 2){
					String[] checkEMail1 = checkEMail[1].split(".");
					
					if(checkEMail[0]!= null && checkEMail1[0] != null && checkEMail1[1] != null){
						return email;
					}
				}
			}
		}
		
		System.out.println("==> Dies ist keine gültige Emailadresse. <==");
		return eMailUeberpruefen(lesenVonDerKonsole("Bitte geben Sie die Emailadresse ein"));
		
	}
 
Das Problem ist, das du nicht so einfach bla.split("."); anwenden kannst, weil .(punkt) bei den regulären ausdrücken für ein beliebiges Zeichen steht. wenn du direkt den .(punkt) willst, dann musst du bla.split("\\."); schreiben. Mehr dazu ausführlich findest du hier.

Hoffe dir geholfen zu haben.
 
Google einfach mal nach java email adresse prüfen, dann findest du einige Lösungen die weitaus kürzer und eleganter sind, z.B.:
Code:
emailString.matches("^[\\w\\.=-]+@[\\w\\.-]+\\.[\\w]{2,4}$");
 
firesnow schrieb:
Google einfach mal nach java email adresse prüfen, dann findest du einige Lösungen die weitaus kürzer und eleganter sind, z.B.:
Code:
emailString.matches("^[\\w\\.=-]+@[\\w\\.-]+\\.[\\w]{2,4}$");
Und leider völlig falsch. Leider, weil solche Tests auf „gültige“ E-Mail-Adressen weit verbreitet sind. Wenn man wirklich alle gültigen Adressen erfassen will, dann wird das kompliziert. Ich würde mich aber darauf beschränken sie nur auf groben Unfug zu testen(fehlendes @, offensichtlich ungültige Domain etc.). Der obige Ausdruck schließt aber gültige Adressen wie hans+mustermann@example.com aus(es gibt übrigens schon heute TLDs mit mehr als 4 Zeichen und das wird in Zukunft noch mehr), und lässt ungültige wie hans@example..com durch.
 
Zuletzt bearbeitet:
Zurück
Oben