• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Bin wohl Betriebsblind, kann preg_match Fehler nicht finden...

S

sysop

Guest
Folgender Ausdruck verursacht mir seit heute einen Fehler:
PHP:
if(!preg_match( '/^([a-zA-Z0-9_-!#])+([\.a-zA-Z0-9_-!#])*@([a-zA-Z0-9_-!#])+(\.[a-zA-Z0-9_-!#]+)+/' , $Wert)) $fehler = $lng['not_ok'];
Ergebnis:
preg_match() [function.preg-match]: Compilation failed: range out of order in character class at offset 14
komischer Weise kommt der Fehler erst seit Kurzem.
 
Ich würde nur gerne darauf hinweisen, dass dieser rägulare Ausdruck nicht korrekt ist (selbst mit umgekehrtem Schrägstrich vor dem Bindestrich).
PHP hat seit Version 5.2.0 eine Funktion, die das richtig macht: filter_var('[email protected]', FILTER_VALIDATE_EMAIL);

Und falls du PHP 5.1.0 als Problem ansehen solltest um diese Funktion zu benutzen:
"/^(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){255,})(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){65,}@)(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22))(?:\\.(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\\]))$/iD";
http://svn.php.net/viewvc/php/php-s...ew=co&revision=306938&content-type=text/plain

Wobei zu bedenken sei, dass eine E-Mailadresse maximal eine 320 Bytelänge haben darf.
 
Danke, das Minus war`s.

@Asterixus
Ich weiss, aber der Kunde hat es so bestellt, es dürfen nur bestimmte Zeichen bei der Eingabe verwendet werden. Ich habe eine Liste mit erlaubten Zeichen bekommen.
 
Zurück
Oben