Hi,
if(!preg_match("/^(([5-9][0-9][0-9])|([1-9]+\.+[0-9][0-9][0-9]+\.?+[0-9]?[0-9]?[0-9]?))$/i", $wert))
Irgendwie hab ich den Eindruck, daß Du relativ planlos Teile, die Du irgendwo in Regexen gesehen hast, zusammenwirfst.
Der Ausdruck ist schon syntaktisch falsch - das Plus nach dem ? ist dort nicht erlaubt.
Wenn man das wegläßt, ergibt die zweite Alternative
([1-9]+.+[0-9][0-9][0-9]+.?[0-9]?[0-9]?[0-9]?
Das erlaubt z.B.
1111111111111...............0099999999999999.
Die vielen Einser wegen [1-9]+
Die vielen Punkte wegen .+
Die zwei Nuller für [0-9][0-9]
Die vielen Neuner für [0-9]+
Der Punkt für .?
Danach nichts mehr, da nach den letzten 3 [0-9] jeweils ein ? steht.
Wie bereits gesagt: Prüfe, ob nur Ziffern vorhanden sind. Mit Regex ^\d+$, und erledige die Bereichsprüfung mit $x >= 500 && $x <= 9000000.
Den Bereich mit Regex prüfen zu wollen, ist sehr aufwendig.
cu,
Andreas
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.