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.
Link gekopieerd
J
John De Zon
29-11-2015 17:03
gewijzigd op 29-11-2015 17:04
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
Link gekopieerd
mag
123.45
123,45
1,234,567.95
Link gekopieerd
123,45 mag
123.45 mag niet
1,234,567.95 mag niet
Link gekopieerd
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
Link gekopieerd
P
Pieter R
29-11-2015 18:28
gewijzigd op 29-11-2015 18:30
Kwam uit op deze: #\d+,?\d+#
Aldus
Grt Pieter
Link gekopieerd
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.
Link gekopieerd
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
Link gekopieerd
P
Pieter R
29-11-2015 20:49
gewijzigd op 29-11-2015 20:50
@Ivo
Inderdaad, ik zie wat je bedoeld.
Dank voor je uitleg.
Link gekopieerd