Hallo,

ik wil de input van mijn tekstveld filteren op cijfers en komma. Er moet dus een melding komen als er iets anders dan cijfers en een komma of enkel cijfers is gevonden.

Alvast bedankt!

Mvg
Hoeveel cijfers achter de komma? En wat voor data is dit? Een bedrag? Als je dit nou eens splitst in euro's (of wat voor valuta je gebruikt) en centen dan kun je voor beide velden dezelfde controle gebruiken, zonder komma.
Thomas van den Heuvel op 29/11/2015 17:00:08

Hoeveel cijfers achter de komma?
- Dat maakt niet echt uit.
Thomas van den Heuvel op 29/11/2015 17:00:08

En wat voor data is dit? Een bedrag?
- Gewoon een decimaal getal.

De komma moet er ook niet bij.
Alvast bedankt voor je snelle reactie!

Mvg
mag

123.45
123,45
1,234,567.95

123,45 mag
123.45 mag niet
1,234,567.95 mag niet
en dan dus waarschijnlijk ook niet

1.234,95

<?php
if(preg_match('#^[0-9]+(,[0-9]+)?$#', $getal) {
// ok
}
else {
// niet ok
}
?>

dus:
^ vanaf het begin
+ (na de [] ) 1 of meer stuks
[0-9] 1 van de tekens in deze reeks (de cijfers 0 tot 9)

()? het vraagteken maakt de reeks tussen de () optioneel

(,[0-9]+) een komma, gevolgd door 1 of meer cijfers.

Daarmee zou dus 123 toegestaan zijn.
maar ook 0 of 999999999999

als er een komma volgt, moeten daarachter nog 1 of meer cijfers volgen
Kwam uit op deze: #\d+,?\d+#
Aldus
Grt Pieter
Dank jullie wel voor alle snelle reacties! Het is gelukt!
Ivo P er moest nog een haakje bij op regel 2, als iemand anders het nog nodig heeft.
Aanvullend
De $ geeft het einde van de string.

@Pieter
dat zoekt alleen of ergens in de string minstens 2 cijfers staan met eventueel een komma ertussen.

Dat sluit het getal 8 uit (maar 1 cijfer)

Maar keurt goed "er moet $4,000,000.00 betaald worden.", omdat 4,000 matcht
@Ivo
Inderdaad, ik zie wat je bedoeld.
Dank voor je uitleg.

Reageren