Ik heb een probleem met dit script

<?php

if(!preg_match("[0-9]",$bedrag)) {
echo "goed";
}else{echo "fout";}

?>

het is de bedoeling dat je alleen 0-9 kunt intypen (bijv. 85) maar hij zegt ook als het goed is als het bedrag bijv ABC is ..

weet iemand het probleem ?? (btw jullie vinden dit vast slordig gescript)

greetz,,

stef
Als je wilt dat het allen getallen mogen zijn kan je beter is_numeric() gebruiken...
nee dat is niks want ik moet de - er ook uit kunnen halen en als ik dit doe :


$test = -13;

if(is_numeric($test))
{
echo "Getal";
}
else
{
echo "geen getal!";
}

zegt hij getal... de min en de + moeten er uit kunnen
dat je all1 maar 0-9 in kunt typen

Aangezien ik niets af weet van regular expressions, denk ik dat ik het zo zou doen:
<?php
if(stristr($test, '+') OR stristr($test, '-') OR !is_numeric($test)){
echo 'niet een goed getal';
}else{
echo 'getal';
}
?>
<?
preg_match("^[0-9]*$",$bedrag);
?>
hej bedankt jelmer hij doet het :) ik snap dr niet veel van maar toch :) bedankt allemaal!! geweldig forum dit :)
^ geeft het begin aan van een string en $ geeft het einde aan van een string. * staat geloof ik voor 0 of vaker het voorgaande ([0-9] dus).
Aah, en daarom werkte die van de TS niet. Daarbij controleerde hij alleen of er een [0-9] in voorkwam.

Bedankt Roy, heb ik ook weer wat geleerd!
(ooit, op een dag, zal ik RegEx begrijpen ^^,)

Reageren