Sven Rautenberg: email äuserlich überprüfen

Beitrag lesen

Moin!

function check_email($email) {
  // RegEx begin
  $nonascii      = "\x80-\xff"; # Non-ASCII-Chars are not allowed

$nqtext        = "[^\\$nonascii\015\012"]";
  $qchar         = "\\[^$nonascii]";

$protocol      = '(?:mailto:)';

$normuser      = '[a-zA-Z0-9][a-zA-Z0-9_.-]*';
  $quotedstring  = ""(?:$nqtext|$qchar)+"";
  $user_part     = "(?:$normuser|$quotedstring)";

$dom_mainpart  = '[a-zA-Z0-9][a-zA-Z0-9._-]*\.';
  $dom_subpart   = '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\.)*';
  $dom_tldpart   = '[a-zA-Z]{2,5}';
  $domain_part   = "$dom_subpart$dom_mainpart$dom_tldpart";

$regex         = "$protocol?$user_part@$domain_part";
  // RegEx end

return preg_match("/^$regex$/",$email);

}

Unbrauchbar. Top-Level-Domains haben mittlerweile mehr als zwei bis fünf Zeichen. Außerdem sind Unterstriche "_" in Domainnamen nicht erlaubt.

- Sven Rautenberg