Avatar billede tnm Nybegynder
06. marts 2006 - 14:24 Der er 10 kommentarer og
2 løsninger

RegEx der validerer dansk valuta

Hej,

Jeg har søgt lidt for at finde en RegEx der validerer dansk valuta. Noget i stil med at den accepterer både:

1,25

84

1,00

men ikke accepterer tekst.

Nogen der kan hjælpe?
Avatar billede nielle Nybegynder
06. marts 2006 - 19:03 #1
Et bud:

^\d+(,\d+)?$
Avatar billede Slettet bruger
06. marts 2006 - 22:17 #2
^[0-9]+(,[0-9]{1,2})?$

Vil jeg mene.
Avatar billede Slettet bruger
06. marts 2006 - 22:18 #3
\d tager også floats med "." i, og dit vil også acceptere 1,0000000000058 nielle.
Avatar billede nielle Nybegynder
06. marts 2006 - 22:37 #4
\d er nu det samme som [0-9] - og det matcher f.eks. ikke floats med '.' i.

Der kan være en pointe mht. hvor mange decimaler der skal tillades efter kommaet. Til gengæld må et tal vel heller ikke begynde med 0:

^[1-9]\d*(,\d{1,2})?$
Avatar billede Slettet bruger
06. marts 2006 - 22:39 #5
^[1-9]\d*(,\d{1,2})?$

Jeg må smide mig på knæ og bede om forladese, hvis min påstand omkring floats var forkert. Jeg må have forvekslet det med php's is_numeric.

Jeg tror den sidste rammer plet :)
Avatar billede nielle Nybegynder
06. marts 2006 - 22:43 #6
;^)
Avatar billede tnm Nybegynder
07. marts 2006 - 00:09 #7
Hejsa, jeg synes nu den allerførste virker udemærket. Jeg sætter parameters med OleDBType.Currency på min tekstbox, og har valgt "Valuta" som datatype i min DB, og her sættes tallet fint ind.

Skriver jeg 00000000050,5000000 i min tekstbox og kigger i min DB har den pænt sat
50,5 ind :-)
Avatar billede nielle Nybegynder
07. marts 2006 - 08:14 #8
Hvis det kun er dig selv, som er bruger af programmet, så er det da også fint nok. Men hvis der er andre som skal bruge programmet, så burde du måske overveje om sådan noget som 00000000050,5000000 egentligt ikke burde resultere i en fejlmmedelelse.

Jeg deler iøvrigt gerne point med wicez på denne her :^)
Avatar billede Slettet bruger
07. marts 2006 - 09:19 #9
Jeg takker mange gange for din gavmildhed, og kvitterer da lige med et svar :)
Avatar billede tnm Nybegynder
08. marts 2006 - 18:37 #10
Der er andre der skal bruge programmet også, så jeg må overveje om jeg skal bruge den sidste. Men den tillader altså kun 2 decimaler efter kommaet?

Og point-uddeleing :-)
Avatar billede Slettet bruger
08. marts 2006 - 18:45 #11
- Tak for point :)
Avatar billede nielle Nybegynder
08. marts 2006 - 19:16 #12
Ja, den tillader kun 2 decimaler efter kommaet - det er de som {1,2} del-mønsteret sikre.

Når du laver programmer, som andre også skal bruge, er det vigtigt at dit GUI virker logisk og konsistent. Selv om du i princippet kunne finde på at indtaste 00000000050,5000000 så er dette ikke et lovligt input hvis feltet skal forestille at tage imod et pengebeløb. Derfor bør der smides en fejlbesked.

... og tak for point :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester