[PHP] preg_match für Zahlen

-=Renegade=-

Lt. Junior Grade
Registriert
Nov. 2006
Beiträge
430
Hi!

Ich versuche derzeit, einen String mit preg_match zu überprüfen, allerdings bekomm ich das gerade nicht wirklich gebacken.

Der String darf nur aus Zahlen bestehen (0-9), ist ein- bis neunstellig und die erste Ziffer darf nicht 0 sein. Kann mir da vllt jemand helfen?

Vielen Dank schonmal im Voraus.


so long
Renegade
 
[1-9]\d{0,8}

Das könnte klappen?!
Sucht erst nach einer Ziffer zwischen 1 und 9 und dann noch 0 bis 8 weiter von 0 bis 9.
 
#(\\d{1,9})#

somit solltest du alle zahlen innerhalb von 0 - 999999999 bekommen. die 0 am anfang würde beim speichern in einer variable eh verloren gehen (solange du dezimalzahlen nimmst, keine oktalen).

wenn es aber wirklich nur um einen string geht, wäre es da aber nicht einfacher anders zu überprüfen?

mit is_int() kannst du z.b. auf eine zahl überprüfen, genauso könntest du den string aber implizit nach int casten (sprich: $variable = (int)$variable;). der wertebereich geht einfach über < 1000000000.

kurzes casten und abfragen braucht zudem weniger rechenzeit als ein regulärer ausdruck (obwohl es ein bisschen mehr schreibarbeit ist). reguläre ausdrücke nimmt man eigentlich nur bei großen strings um dort etwas herauszufiltern bzw zu ersetzen.
 
asdfman schrieb:
Wetten er nimmt sich jetzt eine von euren vorgekauten Lösungen, verzieht sich damit und hat am Ende nichts dabei gelernt?

Echt hilfreich :(


Es ist ihm überlassen, du hast dazu ja schon in deinem ersten Beitrag einen guten Ansatz geliefert... ansonsten liefert Google zu diesem Thema massenhaft brauchbare Ergebnisse.
 
Zuletzt bearbeitet:
Zurück
Oben