preg_match syntax
Jens Marder
- php
0 Hawklan0 Tobias Kloth
Frohes Fest allerseits,
mein Problem ist folgendes(php.net bringt mich dabei nicht weiter):
Bei
$tmp = preg_match("/\d/",$data);
ist $tmp leider auch true, wenn $data 2a ist.
Wie muss ich die Syntax verändern, damit ausschließlich 0-9 und . angenommen werden ?
mfg
Probier mal folgendes:
preg_match("/[.0-9]/",$data)
oder
preg_match("/[0-9]|./",$data)
Gibt bei mir leider immer noch $tmp = true aus, bei der Eingabe von 2a..
Ist das auch nicht richtig, oder liegt der Fehler woanders? - PHP-Einstellungen etc.?
mfg
Hallo Jens,
$tmp = preg_match("/\d/",$data);
damit muss irgendwo im String eine Zahl vorkommen, damit $tmp true ist - du musst den Ausdruck am Anfang und am Ende des zu prüfenden Strings "verankern":
$tmp = preg_match("/^\d$/",$data);
siehe auch http://selfhtml.teamone.de/cgiperl/sprache/regexpr.htm#zeichenketten (vorletzer Absatz) - um allerdings den Punkt auch noch mit zu akzeptieren würde ich die Zeichenklasse [.0-9] verwenden (wobei ich mir nicht sicher bin, ob der Punkt maskiert werden muss oder nicht).
Grüße aus Nürnberg
Tobias
Super, nachdem es ewig gedauert hat zu senden, sehe ich, dass es inzwischen eine andere Antwort gibt (die mir auch weitergeholfen hat
:) ).
Ich bedanke mich vielmals (und lese mir den link nochmal durch),
mfg.