Umlaute in emailadressen

brainsucker

Erfahrenes Mitglied
Hallo zusammen,

ich benutze zur Validierung von Email Adressen diese Funktion hier:

PHP:
function checkEmail($email) {
if (!eregi(
"^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
return false;
}
return true;
}

Dies ist jetzt natürlich veraltet, da ja auch ä,ö,ü in solchen erlaubt sind.

Ich stell mich grad etwas dämlich an den Ausdruck anzupassen. Kann mir jemand hefeln?

Selbiges gilt natürlich auch für Webseiten (URLS)

Hier diese Funktion:

PHP:
function check_url($url)
	{
	if (preg_match("!^(http|https)+(://)+(www\.)?([a-z0-9\.-]{3,})\.[a-z]{2,4}(/)?$!i",$url)) 
		{ 	
		return true; 
		} 
	else 
		{	
		return false; 
		}
	}

Auch hier müsste ich den Regex anpassen, nur wie ?

Wäre über Eure Hilfe dankbar

Gruß

Brainsucker
 
Am geringsten ist wohl der Aufwand mit [phpf]setlocale[/phpf] - Hier muss zumindest LC_COLLATE auf einen deutschen Raum / Zeichensatz eingestellt werden (zB de), des Weiteren ist eregi eventuell ungeeignet (kann das zur Zeit nicht bewerten, könnte mir aber vorstellen, dass es nicht von der locale-Direktive beeinflusst wird), mit den Perl-kompatiblen Regex-Funktionen jedenfalls kann man im entsprechenden Zeichenvorrat mit zB a-z auch alle Umlaute umfassen.

Alternativ dazu müssten entweder die entsprechenden Zeichen oder ihr Ascii-Wert im Octalsystem übernommen werden:
Code:
[_a-zäöüß0-9-]
oder
[-_a-z0-9\204\224\201\341]

Ich glaube, es ist aber dennoch einfacher mit [phpf]setlocale[/phpf] zu arbeiten ;)
 
Zurück