dennis_b: Prüfen ob Datum richtig ist

Hallo leute,

ich möchte das eine User Datums eingabe "z.B. in der Form tt.mm.yyyy"
vor dem Absenden der Mail oder was auch immer geprüft wird.

Damit meine ich ohne eine Menge if schleifen sondern Irgenwie über das Date Objekt? Ich kenne z.B isDate() von VB, gibt sowas Ähnliches auch bei JS oder eine Methode ohne großen aufwand??

Ich Danke allen die mir Helfen /auch alle die wollen/ :-)

THX

MfG

Dennis

  1. Hallo,

    Hmm, wie sieht´s aus mit regulären Ausdrücken? Verhasst zwar, jedoch hilfreich. (Zitat von Alfred M. Steinhausen)

    Viele Grüße

    --
    Was haben ein Hund und ein Frauenarzt gemeinsam? - Eine feuchte Nase!
    1. Hallo Richard,

      Hmm, wie sieht´s aus mit regulären Ausdrücken? Verhasst zwar, jedoch hilfreich. (Zitat von Alfred M. Steinhausen)

      ein regulärer Ausdruck für ein gültiges Datum sollte extrem komplex sein, wenn überhaupt möglich. Überlege selbst, welche Probleme auftreten können.

      Die Idee mit dem Date-Objekt verspricht eine einfachere Lösung.

      Freundliche Grüße

      Vinzenz

      1. Hallo Vinzenz.

        Die Idee mit dem Date-Objekt verspricht eine einfachere Lösung.

        Mir fällt keine ein.

        Entweder entspricht die übergebene Zeichenkette einem gültigen Format und ein entsprechendes Date-Objekt wird erzeugt, oder die Zeichenkette wird ignoriert und es wird der aktuelle Zeitpunkt fürs Date-Objekt verwendet.

        Ich wüsste nicht, wie man hier die Gültigkeit eines Formates überprüfen könnte.

        Einen schönen Donnerstag noch.

        Gruß, Ashura

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
        [HTML Design Constraints: Logical Markup]
        1. Hallo Ashura,

          Die Idee mit dem Date-Objekt verspricht eine einfachere Lösung.
          Mir fällt keine ein.

          wozu sich eine einfallen lassen, suchen und finden:
          Struppis völlig unverständliche und komplexe Lösung http://javascript.jstruebig.de/javascript/39/, verlinkt von ihm selbst im gleichen Thread mit den wunderbaren, auf Anhieb verständlichen und nachvollziehbaren regulären Ausdrücken von Gunnar und seth.

          Absolut ernst gemeinte Grüße

          Vinzenz

          1. wozu sich eine einfallen lassen, suchen und finden:
            Struppis völlig unverständliche und komplexe Lösung http://javascript.jstruebig.de/javascript/39/, verlinkt von ihm selbst im gleichen Thread mit den wunderbaren, auf Anhieb verständlichen und nachvollziehbaren regulären Ausdrücken von Gunnar und seth.

            *heul*

            Absolut ernst gemeinte Grüße

            ich gelobe Besserung und werde an einem VHS Kurs teilnehmen, um die Schönheit Regulärer Ausdrücke zu erkennen.
            "auf du und du mit dem lookbehind Operator"

            Struppi.

            1. Hallo Struppi,

              *heul*

              *tröst*

              ich gelobe Besserung

              Ich auch.

              Der OP möge bitte Gunnars RegExp (gern auch kommentiert von seth) mit Deiner Funktion vergleichen und selbst entscheiden, ob ein Vorschlag und wenn ja welcher für ihn in Frage käme.

              Freundliche Grüße

              Vinzenz (diesmal betont neutral und sachlich)

              1. Hello out there!

                Der OP möge bitte Gunnars RegExp (gern auch kommentiert von seth) mit Deiner Funktion vergleichen und selbst entscheiden, ob ein Vorschlag und wenn ja welcher für ihn in Frage käme.

                Der reguläre Ausdruck war die Antwort „und es geht doch“ auf „das geht nicht“.  Es ist wohl nicht die effizienteste Art und war auch nicht zur praktischen Anwendung bestimmt.

                Der reguläre Ausdruck matcht auch nur Daten im internationalen Datumsformat JJJJ-MM-TT gemäß ISO 8601. Das ist zwar auch nach DIN 5008 das in Deutschland gültige, dummerweise ist TT.MM.JJJJ aber noch weit verbreitet, auch TT.MM.JJ, sogar T.M.JJJJ und T.M.JJ.

                Eine Datumsprüfung müsste dem Butzer alle Varianten offenhalten.

                See ya up the road,
                Gunnar

                --
                “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
                1. Hallo Gunnar,

                  Der reguläre Ausdruck war die Antwort „und es geht doch“ auf „das geht nicht“.  Es ist wohl nicht die effizienteste Art und war auch nicht zur praktischen Anwendung bestimmt.

                  das ist mir klar. Ich bin beeindruckt, dass es geht.

                  Der reguläre Ausdruck matcht auch nur Daten im internationalen Datumsformat JJJJ-MM-TT gemäß ISO 8601.

                  Das ich für eigene Zwecke gerne nutze, insbesondere auch wegen der guten Sortiermöglichkeiten.

                  Das ist zwar auch nach DIN 5008 das in Deutschland gültige, dummerweise ist TT.MM.JJJJ aber noch weit verbreitet, auch TT.MM.JJ, sogar T.M.JJJJ und T.M.JJ.

                  Nach meinen bisherigen Erfahrungen verbreiteter als das internationale Datumsformat, Tendenz gleichbleibend.

                  Eine Datumsprüfung müsste dem Butzer alle Varianten offenhalten.

                  Ein klein wenig Eigeninitiative sollte man dem OP schon überlassen. Und eure kommentierte Version sollte sich auch mit nicht zu hohem Aufwand anpassen lassen.

                  Freundliche Grüße

                  Vinzenz

                  1. Hello out there!

                    Und eure kommentierte Version sollte sich auch mit nicht zu hohem Aufwand anpassen lassen.

                    Das glaub ich nicht. Ein regulärer Ausdruck für TT.MM.JJJJ sähe ganz anders aus.

                    Bei JJJJ-MM-TT liest du ja erst das Jahr, weißt also nach 4 Zeichen, ob es ein Schaltjahr ist, und weißt dann nach Einlesen des Monats, welche Ziffernfolgen als Tag infrage kommen.

                    Bei TT-MM-JJJJ musst du für den Tag alles bis 31 zulassen, dann beim Monat prüfen, ob die Tagenagabe dazu passt, und wenn du '29.02.' gelesen hast, auch noch auf ein Schaltjehr prüfen.

                    See ya up the road,
                    Gunnar

                    --
                    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
                    1. Hallo Gunnar,

                      Bei TT-MM-JJJJ musst du für den Tag alles bis 31 zulassen, dann beim Monat prüfen, ob die Tagenagabe dazu passt, und wenn du '29.02.' gelesen hast, auch noch auf ein Schaltjehr prüfen.

                      stimmt, daran habe ich nicht gedacht :-(

                      Freundliche Grüße

                      Vinzenz

      2. Hallo Ingrid,

        Hmm, wie sieht´s aus mit regulären Ausdrücken? Verhasst zwar, jedoch hilfreich. (Zitat von Alfred M. Steinhausen)

        ein regulärer Ausdruck für ein gültiges Datum sollte extrem komplex sein, wenn überhaupt möglich.

        Wunderschön: http://forum.de.selfhtml.org/archiv/2006/3/t126272/#m814813 ff.

        Freundliche Grüße

        Vinzenz