0

Prüfen ob ein String ein korrektes Datum ist

Hallo, ich habe in meiner DB ein Textfeld in welches ein Termin eingetragen wird.

Da der Termin auch ein String sein kann (z.B. "2.KW" oder "sofort"....), würde ich gerne prüfen

ob eine korrekte Datumseingabe als String gemacht wurde und diese dann als Datum weiter verarbeiten.

8 Antworten

null
    • mirko3
    • vor 6 Monaten
    • Gemeldet - anzeigen

    Hi Ralf. Für ein Format DD.MM.YYYY geht

    testx(Text, "\d{2}\.\d{2}\.\d{4}")
    

    Falls die Formate weniger streng sind, wie bei 1.5.24, dann müßte die Version etwas aufgeweicht werden

    testx(Text, "\d{1,2}\.\d{1,2}\.\d{2,4}")
    

    Mirko

      • Wegener & Hinz GmbH
      • green_cup
      • vor 6 Monaten
      • Gemeldet - anzeigen

       Erstmal vielen Dank für die Bemühungen.

      Die Funktion erkennt keine Fehler wenn der String ähnlich wie ein Datum ist, aber durch Tastensalat z.B. x1.2.2024 ist. Schön wäre es wenn man eine Funktion hätte die ja/nein oder 0/1 ausgibt wenn es ein korrektes Datum ist/oder nicht. Derzeit behelfe ich mich mit ein Datumsfeld (versteckt) das ich erst auf null setze und dann den String zuweise. Ist das Datum nicht korrekt, bleibt das Datumsfeld leer.

    • mirko3
    • vor 6 Monaten
    • Gemeldet - anzeigen

    Okay. Vielleicht versuchts Du es so? Prüft auf isZahl, Länge der Item und Plausibilität für Tag und Monat. Mirko

    let splitter := split(TEXT, ".");
    let result := for i in splitter do
            number(i)
        end;
    cnt(result[!= 0]) = 3 and testx(Text, "^\d{1,2}\.\d{1,2}\.\d{2,4}") and
        item(splitter, 0) < 32 and
    item(splitter, 1) < 13
    
      • Wegener & Hinz GmbH
      • green_cup
      • vor 6 Monaten
      • Gemeldet - anzeigen

       okay, das geht bisher am besten 🙂

      Werde damit erstmal weiter arbeiten.....................Vielen Dank

    • mirko3
    • vor 4 Monaten
    • Gemeldet - anzeigen

    Auch wenn es schon älter ist - hier eine sichere Funktion, die einen String validiert auf ein korrektes Datum im Format "DD.MM.YYYY".

    Die Datumsrange in der Funktion kann natürlich noch weiter eingeschränkt, oder erweitert werden. Ich habe sie bewußt weit gefasst. Im Tab1 ist die Warnung mit unnötiger, aber lustiger Formatierung per CSS, im Tab2 wird ein Warnzeichen generiert. Mirko

      • Rafael_Sanchis
      • vor 4 Monaten
      • Gemeldet - anzeigen

       

      Hi Mirko. Can it be adapted to work with date fields?

      • mirko3
      • vor 4 Monaten
      • Gemeldet - anzeigen

      What exactly should be adapted to them?

      • Rafael_Sanchis
      • vor 4 Monaten
      • Gemeldet - anzeigen

       

      Change the text field by a Date field.