[PHP] Reguliere expressie

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wil graag een reguliere expressie maken met php die de volgende invoer mag accepteren

999.99

Het stukje code wat ik nu gemaakt heb is:

PHP:
1
var_dump(eregi("^[0-9]{1,3}\.{0,1}[0-9]{0,2}$",$standaard));


Maar met deze code kan ik ook 99999 invoeren dus zonder punt ertussen.

Hij mag dus eigenlijk weer 2 tekens extra krijgen wanneer er een . is ingevoerd.

Hierbij gaat het fout.

Acties:
  • 0 Henk 'm!

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 13:04
Nog niet helemaal bedreven in reg_exps, maar kan iets dergelijks niet?

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

Dus dat je 1-3 cijfers hebt, en daarna 0 of 1 keer het patroon punt+0-2 cijfers?

Acties:
  • 0 Henk 'm!

  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 08:29

Tjark

DON'T PANIC

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

? = 0|1

veel mensen voeren ook comma in...
dus daarna nog een replace doen van , naar . indien nodig

*insert signature here


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
bedankt, ik heb hem opgelost

Acties:
  • 0 Henk 'm!

  • Apollo_Futurae
  • Registratie: November 2000
  • Niet online
TjarkVerhoeven schreef op 19 June 2003 @ 12:13:
^[0-9]{1,3}([\.,][0-9]{0,2})?$
de punt is geen metacharacter binnen vierkante haken, dus "[\.,]" moet zijn "[.,]".
verder accepteert deze regex ook "999.", ik denk niet dat dat de bedoeling is?

Pas de replâtrage, la structure est pourrie.


Acties:
  • 0 Henk 'm!

  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 08:29

Tjark

DON'T PANIC

idd nog niet echt wakker :)

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

*insert signature here


Acties:
  • 0 Henk 'm!

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18

djc

En je kunt beter preg* gebruiken dan ereg*, in verband met performance. ereg* zullen ook deprecated worden in een volgende versie.

Rustacean

Pagina: 1