Avatar billede ihtezaz Praktikant
01. juli 2006 - 13:41 Der er 12 kommentarer og
2 løsninger

indtastede må kun være et beløb

Hej

Jeg skal bruge en regexp der kun tillader et beløb. altså må der gerne være . til at separere tusinde, og komma til at separere øre
Avatar billede gizmo-gizmo Nybegynder
01. juli 2006 - 14:08 #1
Det her er et bud/forslag:

/^\d+(\.\d\d\d)*(,\d+)?$/

Det kan matche f.eks.:
1.000,00
1000,00
1.000.000

Og f.eks. ikke:
1.00000
1.000.0
Avatar billede ihtezaz Praktikant
01. juli 2006 - 14:11 #2
ok, kan du ikke også sige en hvor kun tal og evt. , og . er tilladt
Avatar billede ihtezaz Praktikant
01. juli 2006 - 14:11 #3
det er til c#
Avatar billede gizmo-gizmo Nybegynder
01. juli 2006 - 14:15 #4
Den her matcher en streng der kun må indeholde tal.,
^[0-9.,]+$

Men så tillader den altså også:
0....5
,,,,,
4.03.,,4.3.4,

:-)
Avatar billede ihtezaz Praktikant
01. juli 2006 - 14:25 #5
Oki, en sidste rettelse, kan du rette den til at hvis input indeholder komma eller punktum må der kun være en af slagsen og efter en tal. Takker ;)
Avatar billede gizmo-gizmo Nybegynder
01. juli 2006 - 14:55 #6
/^([0-9]|(?<=[0-9])(\.|,))+$/

Den matcher:
1000,000.000
10,0,0,0.0.0

Og ikke:
100.,00
,100.00

Kan den første løsning ikke bruges? Den virker mere komplet, så du altid får et format du ved hvad indeholder?
Avatar billede ihtezaz Praktikant
01. juli 2006 - 15:20 #7
den virker ikke helt, hvis jeg indtaster tal uden komman og punktum giver den også fejl.
Avatar billede Slettet bruger
03. juli 2006 - 13:47 #8
Hvad med denne? (Da det er til C# har jeg undladt // om)

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

Den burde matche på

1.000.000,00
1000000,00
1000.000
1000000

og fejle på

1.00.000 (tusinadskilleren må kun adskille blokke af 3 cifre)
100,0 (Hvis man skriver komma, skal der være 2 ørecifre)
100, (samme)
.100,00 (skal starte med et ciffer)
Avatar billede Slettet bruger
03. juli 2006 - 13:55 #9
Den eneste forskel på min og gizmo-gizmos første forslag er, at min kun accepterer to ørecifre.

Men bemærk, at hvor de fleste andre sprog bruger "delimiters" omkring selve det regulære udtryk, så undlader man dette i .NET. Normalt vil disse delimiters være /, men der kan også benyttes andre tegn. Hvis du ser en regexp til andet end .NET, vil de normalt være uden om selve udtrykket.

NB! ^ og $ er ikke delimiters, men koder for start og slut på strengen (eller rettere sagt linien, men hvis strengen kun indeholder en linie, kommer det ud på det samme).
Avatar billede gizmo-gizmo Nybegynder
03. juli 2006 - 13:56 #10
sandbox: den er faktisk magen til mit første forslag (bortset lige fra enden) :-)
Avatar billede gizmo-gizmo Nybegynder
03. juli 2006 - 13:56 #11
Right :)
Avatar billede ihtezaz Praktikant
08. juli 2006 - 16:51 #12
sorry, jeg har ikke lige været hjemme, jeg tjekker den lige op her i weekenden og svar.
Avatar billede ihtezaz Praktikant
16. juli 2006 - 16:57 #13
takker jer begge, i får begge points. Sandbox smid et svar
Avatar billede Slettet bruger
17. juli 2006 - 15:22 #14
Ok
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

IT-JOB