Tach!
if (preg_match("/[1]{5,10}$/", $text))
echo "Zahl ist drin!";Das ist eine falsche PHP Syntax!
Das, was bei Zutreffen der Bedingung passieren soll, steht in geschwungenen Klammern!
Nein, wenn nur eine Anweisung folgt, braucht es keine geschweiften Klammern.
Dein Ausdruck sagt: Eine Zahl aus 5-10 Ziffern, weder davor noch danach darf etwas stehen.
Etwas genauer gesagt, nach dem Anfang sollen die 5 bis 10 Ziffern folgen und danach das Ende.
Du willst aber, dass auch davor oder danach etwas stehen darf. Also ein _beliebiges Zeichen_ (dafür steht der Punkt) darf _kein_ Mal oder beliebig oft (dafür steht der Stern) vorkommen. Deshalb:
if ( preg_match('~^.*[0-9]{5,10}.*$~', $text) )
Es reicht auch, im Originalausdruck einfach das ^ und $ wegzulassen. (Und [0-9] könnte man noch zu \d abkürzen.)
dedlfix.
0-9 ↩︎