ereg prijscheck probleempje

Pagina: 1
Acties:

  • Mitsah
  • Registratie: Februari 2002
  • Laatst online: 09-10-2024
Ik wil in een formulier een prijs kunnen checken. Het moet mogelijk zijn om gewone bedragen in te vullen van 0,00 euro t/m 10.000,00 euro. Let op de punt en komma's. Ik dacht daarvoor de volgende code te kunnen gebruiken, maar dat gaat niet goed.

^[0-9]{1,3}(,[0-9]{3})*(\.[0-9]{1,2})?$

Wie kan mij vertellen wat hier fout gaat en wat wel de goede code is. Ik heb al het een en ander geprobeerd, maar het lukt me niet.

Alvast bedankt!

  • BobDay
  • Registratie: December 2001
  • Laatst online: 11-08-2025
Ik heb er niet echt goed na gekeken, maar gelezen van links naar rechts mag je toch eerst punt(en) '.' verwachten en daarna een komma ','?

Dus
^[0-9]{1,3}(\.[0-9]{3})*(,[0-9]{1,2})?$
ipv
^[0-9]{1,3}(,[0-9]{3})*(\.[0-9]{1,2})?$

Ik heb het niet getest, alleen dit viel op. Nu maar hopen dat ie het doet :9

* BobDay zou het werkende maken als hij het hier kon testen!

[edit]ik weet niet of een punt of komma ge-escapped moet worden!

43% of all statistics are worthless


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Een getal begint niet met een 0 als er nog meer (voor de komma) achterkomt :)
Dus wordt dan iets als:
^((0)|([1-9][0-9]{0,2}(\.[0-9]{3})*))(,[0-9]{1,2})?$

niet getest verder trouwens :)
(die haakjes om de 0 zijn trouwens overbodig ;)

  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 12-02 15:52
^(0|([1-9][0-9]{0,2}(\.[0-9]{3})*))(,[0-9]{1,2})?$
0,1 true
1 true
-3 false (is niet erg, negatief mocht niet :))
0.1 false
1444 false (moet een . tussen)
1.444 true
145.12 false
123.123,52 true
0 true
0,0 true
0,00 true

Hmmm... Volgens mij werkt dit aardig :) Ik dénk dat ik deze ook ga gebruiken :P

  • Mitsah
  • Registratie: Februari 2002
  • Laatst online: 09-10-2024
Ok bedankt voor de reacties. Ik ga het vanavond testen!