Thorsten Steffen: einfacher regulärer Ausdruck

Beitrag lesen

Hio Andreas,

Jetzt will ich wie gesagt lediglich prüfen ob die Eingabe einem der obigen Formate entspricht:

/[0-9]*,?[0-9]+/

Ist es zwar nicht 100%ig, aber sehr einfach. Nur - aus welchem Grund ergibt die Eingabe von "12345.6789" TRUE?

weil du nicht definierts an welcher Stelle deiner Zeichenkette das Muster auftretten muss, insofern erfüllt die 1. Ziffer schon deinen regulären Ausdruck

/[1]*,?[0-9]+$/ würde es schon eher treffen.
Dabei steht ^ für den Anfang deiner Zeichenkette (der Ausdruck muss also damit beginnen) und das $ für das Ende (der Ausdruck muss alos damit enden).
Wobei dann der Punkt selber nicht zulässig wäre, du aber genau auf dieses Format kommen willst. Oder anders gesagt, gibt jmd weil für ihn gewohnt den Preis mit dem Punkt an (mayb weil us-amerkianer) akzetierst du es nicht obwohl ja eigentlich zulässig (nur so als idee)

Muss ich das verstehen? Selbst eine explizite Umwandlung in STRING hat nichts gebracht.

klar nicht, s.o. ^^
möglich wäre auch folgendes (ungetestet)

if ($wert == floatval($wert))

gl & hf

Thorsten


  1. 0-9 ↩︎