docusnap-dude
Goto Top

Regular Expression für Finanz

Hallo,

kann mir jemand kurz helfen: ich brauche für Eingabefelder in einer .NET-basierten Maske einen speziellen Software (hintendran eine MSSQL-DB) den Syntax zur Prüfung der Eingabe von Finanz (Euro) als RegEx.


Quasi soll der regex checken, das es sich um 0,00€ bis 99999,00€ handelt beim Input durch den user. Frage also: wie lautet der RegEx-String?

ja, gegoogelt hab ich, allerdings nicht gefunden was mir da so wirklich hilft (Wald und Bäume und so).


Merci und einen angenehmen Tag!

Content-ID: 377437

Url: https://administrator.de/contentid/377437

Ausgedruckt am: 05.11.2024 um 16:11 Uhr

emeriks
Lösung emeriks 19.06.2018 aktualisiert um 08:53:47 Uhr
Goto Top
Hi,
kennst Du z.B.
Online regex tester and debugger
Learn, Build, & Test RegEx

Mit solchen Seiten baue ich mir meine RegEx-Ausdrücke, wenn ich sie mal gelegentlich brauche.

E.
DocuSnap-Dude
DocuSnap-Dude 19.06.2018 um 08:47:56 Uhr
Goto Top
Hi,

demnach scheint es so zu klappen, für alle die das mal brauchen


^[0-99999]+,[0-9][0-9]+ €

Quasi: 5 Stellen vor dem Komma, dann zwei Stellen hinter dem Komma, ein leerzeichen und dann das €-Zeichen.

Danke dir!
emeriks
emeriks 19.06.2018 um 08:59:01 Uhr
Goto Top
Ich glaube noch nicht ganz.
1111111111111111111,011110 €
bekommt auch "match".
\d+,\d+ €
Würde das gleiche Ergebnis liefern. Auch noch nicht korrekt.
emeriks
emeriks 19.06.2018 aktualisiert um 09:05:08 Uhr
Goto Top
[0-9]{1,5},[0-9][0-9] €
Das kommt schon näher.
gierig
gierig 19.06.2018 um 09:04:57 Uhr
Goto Top
Naja...
199,23 €; drop database;

ist damit eine Valide Eingabe da kein Endzeichen.

Dank dem Plus als quantifier der ja "ein oder mehrere vorkommen bedeutet" aber auch

123333323,2000440 €

Eher aber ohne Garantie für Leib, Leben oder Konto Stand...

^[0-9]{1,5},[0-9]{2}[[:space:]]€$
wiesi200
wiesi200 19.06.2018 um 09:12:06 Uhr
Goto Top
Hallo,

wer will denn bei sowas noch extra das € Zeichen eingeben? Das weglassen und mit nem einfachen Dezimalwert arbeiten?
Macht dann das weiterverarbeiten auch lechter, wenn man z.b. damit mal rechnen will.
DocuSnap-Dude
DocuSnap-Dude 19.06.2018 um 10:55:39 Uhr
Goto Top
Hi,


Zitat von @wiesi200:

wer will denn bei sowas noch extra das € Zeichen eingeben? Das weglassen und mit nem einfachen Dezimalwert arbeiten?
Macht dann das weiterverarbeiten auch lechter, wenn man z.b. damit mal rechnen will.

Hast recht, Stimmt. Das kann ich über das Ausgabeformat steuern, da es um den Input geht reicht das auch ohne €.

Mit der variante
^[0-9]{1,5},[0-9]{2}

habe ich es jetzt erfolgreich gesetzt.

Danke euch allen!
gierig
gierig 19.06.2018 um 11:13:56 Uhr
Goto Top
Mache da bitte ein
^[0-9]{1,5},[0-9]{2}$
raus

sonst führen eingaben wie "23,34asfs" immer noch zu einem match...
colinardo
Lösung colinardo 19.06.2018 aktualisiert um 15:03:23 Uhr
Goto Top
Ich würde das Zwingen zu Dezimalstellen eher noch optional gestalten so das der User auch 100 statt 100,00 eingeben darf, man sollte es dem Endanwender ja so einfach wie möglich machen, wer weiß wer davor sitzt face-wink.
^\d{1,5}(,\d{1,2})?$
Grüße Uwe
DocuSnap-Dude
DocuSnap-Dude 21.06.2018 um 09:21:25 Uhr
Goto Top
Zitat von @colinardo:

Ich würde das Zwingen zu Dezimalstellen eher noch optional gestalten so das der User auch 100 statt 100,00 eingeben darf, man sollte es dem Endanwender ja so einfach wie möglich machen, wer weiß wer davor sitzt face-wink.
> ^\d{1,5}(,\d{1,2})?$
> 
Grüße Uwe


WOW, das ist die pure Perfektion. Genau das ist die Lösung, welche ich mit dem starten des Threats erhofft habe zu bekommen. Genial.

Danke Uwe!