pattern mit Pipeline und unterschiedlicher Stellenanzahl

  • Ich habe ein Inputfeld, indem sowohl ein herkömmliches Datum eingegeben werden kann (TTMMJJ) als auch ein "gärtnerisches". Z. B. Anfang Feber 2017 (= A0217), Mitte Mai 2017 (= M0517, Ende August 2017 (=E0817). Dies deswegen, da oft das genaue Datum nicht mehr so genau zu ermitteln ist und die Angaben für Aussaat, Pflege und Ernte auch so beschrieben werden (Mitte Feber...). Verwende Firefox 50.

    Jetzt funktionieren beide Pattern für sich alleine:

    gärtnerisches Datum: pattern='[AME]{1,1}[0-1]{1,1}[0-9]{1,1}[1-2]{1,1}[0-9]{1,1}'>
    herkömmloiches Datum: pattern='[0-3]{1,1}[0-9]{1,1}[0-1]{1,1}[0-9]{1,1}[1-2]{1,1}[0-9]{1,1}'

    Auch wenn ich es mit der Pipeline und Klammern kombiniere, funktioniert das herkömmliche Datum, nimmt aber nicht das gärtnerische:

    pattern='([AME]{1,1})|([0-3]{1,1}[0-9]{1,1})[0-1]{1,1}[0-9]{1,1}[1-2]{1,1}[0-9]{1,1}'

    A wird noch akzeptiert, jede weitere Eingabe wird schon als invalid angezeigt. Ist das mit unterschiedlichen Stellen nicht möglich? Durch die Klammer müsste der hintere Teil immer gleich sein, oder?

    Edge erlaubt übrigens alles, hat scheinbar pattern nicht implementiert!? Und zeigt beim Anspringen des Feldes meine PLZ an ...

    lg

    • Offizieller Beitrag

    Hallo,

    Mach es Dir doch einfacher, achte erstmal nur auf das Grundpattern, das sollte so gehen, denke ich:

    Code
    ([ame]{1}[\d]{4})|([\d]{6})

    Ob jetzt die Zahlen an den richtigen Stellen stehen usw., prüfst Du hinterher...

    Gruß Arne


    EDIT: Gerade mal getestet, mit etwas mehr Ristriktion funktioniert es so:

    Code
    ([ame][\d]{4})|([0123][\d][01][\d][\d]{2})

    Du musst bei beiden Pattern allerdings den Modifier i verwenden oder AME groß schreiben.
    Ich würde allerdings den i Modifier setzen.