PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : preg_match / strlen und Leerzeichen


Franzx
02.10.2007, 10:19:43
Moin, moin,

mit preg_match prüfte ich bis dato ein Eingabefeld und mit strlen die Länge der Zeicheneingabe.

if(preg_match('/^\d{4}[a-zA-Z]?$/i', $_REQUEST['AUSWAHL']))
{ if(isset($_REQUEST['AUSWAHL']) && strlen($_REQUEST['AUSWAHL']) > 5) {
$error_flag = 3;
}}
else
{
$error_flag = 3;
}

Was bislang auch reibungslos funktioniert hat. Diese Prüfung hatte auch zur Folge, dass mindestens 4 Zahlen eingegeben werden mußten, also sollte eine Nummer kleiner 1000 sein so mußte eben eine Null vorweg geschrieben werden, also 0999, und wurden mehr oder weniger eigegeben, so kam eine Fehlermeldung/Erklärung(welche in $error_flag = 3 steckt) wie die Eingabe auszusehen hätte.

Leider erfordert es nun die aktuellen Anforderungen, dass eine Eingabe ohne vorangestellten Nullen funktionieren soll, also nicht 0999 sondern 999.

Das Feld hat max. 5 Zeichen, wobei nur das letzte Zeichen ein Buchstabe sein kann, die anderen sind Ziffern. Wie prüfe ich den nu, dass die Reihenfolge der eingegebenen Zeichen richtig ist, zB. an 10a und gleichzeitig, dass das die Eingabe nicht mehr als 5 Zeichen lang ist?

Grüße,
Franzx

Franzx
02.10.2007, 10:28:49
Sorry, nachdem ich den Post abgeschickt hatte ist wohl das Licht aufgegangen.
Ich denke ich mache innerhalb von preg_match aus der {4} ein {1} und schon sollte es funzen.
Habe zu kompliziert gedacht, da ja nun vor der {1} Zeichen frei werden. Diese können aber nicht verwendet werden, durch Fehleingabe, da preg_match dies verhindert und $error_flag = 3 setzt.

cu,
franzx