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-Key: 377437

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

Printed on: April 23, 2024 at 09:04 o'clock

Member: emeriks
Solution emeriks Jun 19, 2018 updated at 06:53:47 (UTC)
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.
Member: DocuSnap-Dude
DocuSnap-Dude Jun 19, 2018 at 06:47:56 (UTC)
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!
Member: emeriks
emeriks Jun 19, 2018 at 06:59:01 (UTC)
Goto Top
Ich glaube noch nicht ganz.
1111111111111111111,011110 €
bekommt auch "match".
\d+,\d+ €
Würde das gleiche Ergebnis liefern. Auch noch nicht korrekt.
Member: emeriks
emeriks Jun 19, 2018 updated at 07:05:08 (UTC)
Goto Top
[0-9]{1,5},[0-9][0-9] €
Das kommt schon näher.
Member: gierig
gierig Jun 19, 2018 at 07:04:57 (UTC)
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:]]€$
Member: wiesi200
wiesi200 Jun 19, 2018 at 07:12:06 (UTC)
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.
Member: DocuSnap-Dude
DocuSnap-Dude Jun 19, 2018 at 08:55:39 (UTC)
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!
Member: gierig
gierig Jun 19, 2018 at 09:13:56 (UTC)
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...
Member: colinardo
Solution colinardo Jun 19, 2018 updated at 13:03:23 (UTC)
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
Member: DocuSnap-Dude
DocuSnap-Dude Jun 21, 2018 at 07:21:25 (UTC)
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!