- Posts: 26
- Thank you received: 1
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
Regulärer Ausdruck, Fehler bei 0 als letzte Zahl hinter dem Komma
- bambam
- Topic Author
- Offline
- Silver Donor
Less
More
3 years 3 months ago - 3 years 3 months ago #209704
by bambam
Regulärer Ausdruck, Fehler bei 0 als letzte Zahl hinter dem Komma was created by bambam
Hallo zusammen,
ich nutze die LS-Version 3.24.1+201014
Um in einem Zahlenfeld die Eingaben mit zwei Nachkommastellen zu validieren habe ich folgenden regex genommen:
Bei der Frage-Validierungsgleichung:
is_empty(self) OR regexMatch('/^[0-9]+(\.[0-9][0-9])$/',self)
Bei Frage-Validierungshinweis:
{if(is_empty(self) OR regexMatch('/^[0-9]+(\.[0-9][0-9])$/',self) ,"Eingabe mit 2 Dezimalstellen (z.B. 456,78)","Eingabe mit 2 Dezimalstellen (z.B. 456,78)")}
Unter Textelemente habe ich beim Dezimaltrennzeichen das Komma ausgewählt.
Nun das Problem:
Bei einer Eingabe von 22,22 oder 22,01 geht es Einwandfrei, habe ich aber am Ende eine Null stehen, z.B. 22,00 wird der Validierungshinweis als falsch/Rot ausgegeben.
Ich habe auch schon viel gesucht, finde aber keine Lösung, warum das so ist.
Hier: Forum Limesurvey gab es von Joffm bereits einen sehr guten Hinweis den ich übernommen habe, der Validierungshinweis wird aber wieder als falsch/Rot ausgegeben.
Hat jemand dazu eine Idee? Ich bin inzwischen ratlos, habe auch schon viel probiert.
Vielen Dank!
ich nutze die LS-Version 3.24.1+201014
Um in einem Zahlenfeld die Eingaben mit zwei Nachkommastellen zu validieren habe ich folgenden regex genommen:
Bei der Frage-Validierungsgleichung:
is_empty(self) OR regexMatch('/^[0-9]+(\.[0-9][0-9])$/',self)
Bei Frage-Validierungshinweis:
{if(is_empty(self) OR regexMatch('/^[0-9]+(\.[0-9][0-9])$/',self) ,"Eingabe mit 2 Dezimalstellen (z.B. 456,78)","Eingabe mit 2 Dezimalstellen (z.B. 456,78)")}
Unter Textelemente habe ich beim Dezimaltrennzeichen das Komma ausgewählt.
Nun das Problem:
Bei einer Eingabe von 22,22 oder 22,01 geht es Einwandfrei, habe ich aber am Ende eine Null stehen, z.B. 22,00 wird der Validierungshinweis als falsch/Rot ausgegeben.
Ich habe auch schon viel gesucht, finde aber keine Lösung, warum das so ist.
Hier: Forum Limesurvey gab es von Joffm bereits einen sehr guten Hinweis den ich übernommen habe, der Validierungshinweis wird aber wieder als falsch/Rot ausgegeben.
Hat jemand dazu eine Idee? Ich bin inzwischen ratlos, habe auch schon viel probiert.
Vielen Dank!
Last edit: 3 years 3 months ago by bambam.
The topic has been locked.
- Joffm
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 12779
- Thank you received: 3940
3 years 3 months ago #209706
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Regulärer Ausdruck, Fehler bei 0 als letzte Zahl hinter dem Komma
Hallo, bambam,
Okay,
1. Du hast eine Zahleingabe als Fragetyp genommen; da wird bei einer ",00" natürlich zunächst einmal dieser für den Zahlwert irrelevante Teil entfernt.
Bei solchen Problemen sollte man immer schauen, was in der Datenbank gespeichert wird.
Studie aktivieren, eingeben, gucken.
Dann siehst Du dies auch:
Rechts ist die Frage vom Typ "Zahleingabe; es wurde "14,00" eingegeben.
Also, was machst Du? Du änderst den Fragetyp in "kurzer Text", nimmst in der Expression auch das Komma.
2. Zusätzlich ist es natürlich überflüssig, eine identische Meldung auszugeben; hier ist die Bedingung unsinnig.
Einfach "Bitte Zahlen mit zwei Kommastellen" reicht.
Bei Fehler ist sie rot, sonst grün.
Die Bedingung wäre dann interessant, wenn Du zwei verschiedene Meldungen anzeigen willst, oder gar nichts, solange alles in Ordnung ist.
Joffm
Aber verraten, was Du sonst noch ausprobiert hast, willst Du nicht?Ich bin inzwischen ratlos, habe auch schon viel probiert.
Okay,
1. Du hast eine Zahleingabe als Fragetyp genommen; da wird bei einer ",00" natürlich zunächst einmal dieser für den Zahlwert irrelevante Teil entfernt.
Bei solchen Problemen sollte man immer schauen, was in der Datenbank gespeichert wird.
Studie aktivieren, eingeben, gucken.
Dann siehst Du dies auch:
Rechts ist die Frage vom Typ "Zahleingabe; es wurde "14,00" eingegeben.
Also, was machst Du? Du änderst den Fragetyp in "kurzer Text", nimmst in der Expression auch das Komma.
2. Zusätzlich ist es natürlich überflüssig, eine identische Meldung auszugeben; hier ist die Bedingung unsinnig.
Einfach "Bitte Zahlen mit zwei Kommastellen" reicht.
Bei Fehler ist sie rot, sonst grün.
Die Bedingung wäre dann interessant, wenn Du zwei verschiedene Meldungen anzeigen willst, oder gar nichts, solange alles in Ordnung ist.
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
- bambam
- Topic Author
- Offline
- Silver Donor
Less
More
- Posts: 26
- Thank you received: 1
3 years 3 months ago #209708
by bambam
Replied by bambam on topic Regulärer Ausdruck, Fehler bei 0 als letzte Zahl hinter dem Komma
Hallo Joffm,
Ein kurzes Textfeld hatte ich auch, allerdings dann nicht mehr im Ausdruck auf das Komma anstatt den Punkt geachtet.
Wobei, doch, probiert ja, aber dann hatte ich wohl zusätzlich den Fehler gemacht, bei dem Textfeld unter Sonstiges "Nur Zahlen" zu aktivieren, was ja, bedingt durch die Datenbank, den Fehler natürlich wieder zeigte.
Super, das Du meinen Fehler so schnell gefunden und Klasse erklärt hast woran es lag, in die Richtung hätte ich irgendwie nicht gesucht.
Danke!
Zuletzt hatte ich mich im Regulären Ausdruck verrannt.Joffm wrote: Aber verraten, was Du sonst noch ausprobiert hast, willst Du nicht?
Ein kurzes Textfeld hatte ich auch, allerdings dann nicht mehr im Ausdruck auf das Komma anstatt den Punkt geachtet.
Wobei, doch, probiert ja, aber dann hatte ich wohl zusätzlich den Fehler gemacht, bei dem Textfeld unter Sonstiges "Nur Zahlen" zu aktivieren, was ja, bedingt durch die Datenbank, den Fehler natürlich wieder zeigte.
Hmm, bei mir kam dann nur ein Rotes Ausrufezeichen ohne Text wenn das letzte leer war, daher habe ich beide gleichgesetzt.Joffm wrote: 2. Zusätzlich ist es natürlich überflüssig, eine identische Meldung auszugeben; hier ist die Bedingung unsinnig.
Einfach "Bitte Zahlen mit zwei Kommastellen" reicht.
Bei Fehler ist sie rot, sonst grün.
Die Bedingung wäre dann interessant, wenn Du zwei verschiedene Meldungen anzeigen willst, oder gar nichts, solange alles in Ordnung ist.
Super, das Du meinen Fehler so schnell gefunden und Klasse erklärt hast woran es lag, in die Richtung hätte ich irgendwie nicht gesucht.
Danke!
The topic has been locked.
Moderators: Joffm