Et regex-spørgsmål vedr. tjek af indtastet beløb
Halløjsa,Jeg har i den sidste 1½ time siddet og stirret mig dum på en lille kode, som jeg nu håber én eller flere af jer kloge hoveder kan være mig behjælpelig med! :-)
Det drejer sig om et beløb, der indtastet i en formular og som så smides videre til validering. Jeg vil gerne have valideret beløbet, således at følgende er korrekt input:
- XX,XX
- XX,X
- X,XX
- X,X
- XX
- X
Mit script tager højde for de 5 først-nævnte, men jeg kan bare ikke få den til at validere som korrekt, når der indtastet kun ét ciffer (f.eks. 1 eller 9).
Min test-kode (hele koden!) ser således ud:
<?php
function test($amount)
{
if(preg_match("/^([0-9]{1})+(,)*([0-9]{1,2})$/i", $amount, $match))
return true;
return false;
}
function check($amount)
{
echo $amount . " " . (test($amount) ? "OK" : "IKKE OK") . "<br>\n";
}
check("22,212");
check("1,21");
check("122312312,1");
check("13212,");
check("122312312");
check("1");
check("9");
check("12");
check(",32");
?>
Er der nogle kloge hoveder til regex, som lige kan skimte fejlen/forglemmelsen? Jeg har kigget i PHPs dokumentation for det, men tilsyneladende uden held.
- http://dk2.php.net/manual/en/reference.pcre.pattern.modifiers.php- http://dk2.php.net/manual/en/reference.pcre.pattern.syntax.php
Måske jeg bare ikke helt har forstået det.
Jeg siger på forhånd tak for hjælpen! :-)
--
Kristian
