String validieren

  • Hallo,

    ich habe mal wieder ein Problem. :P
    Meine Aufgabe ist es, dass ich einen String habe, den ich überprüfen will, bevor das Formular abgeschickt wird.
    Der String kann in zwei verschiedenen Varianten aufgebaut sein:

    1. Variante: 00-00/00-00/00-00/00-00/00-00/00-00/00-00/00-00/00-00/00-00/00-00/00-00/00-00/00-00/00-00/00-00//

    2. Variante: 0-0/0-0/0-0/0-0/0-0/0-0/0-0/0-0/0-0/0-0/0-0/0-0/0-0/0-0/0-0/0-0//

    (Anstatt der 0 können die Ziffern 0-9 stehen)

    Die Regel, nach dem der String überprüft werden soll ist: Das auf eine Zahl nur +-1 folgen darf.
    Also beispielsweise: 0-1/0-0/1-0/.... wäre richtig; 0-2/0-0/1-0/... wäre falsch.

    Ich hatte überlegt immer mit charAt() durchsuchen zu lassen, und dabei bei variante 1. immer die die Zeichen [0] und [1] zu einer Zahl zusammenzufügen und [4] und [5]. Diese zwei Zahlen subtrahiere ich und das Ergebnis muss -1, 0 oder 1 sein. Bei Variante 2. dann äquivalent vorgehen.

    Wie kann ich das am Besten umsetzen, oder hat sogar jmd. noch einen anderen Vorschlag?

    Viele Grüße

    MrFogel

  • einen schicken regulären ausdruck basteln?
    Oder das ding in ein array zerlegen und prüfen... das wäre meine Idee...


    Reguläre Ausdrücke sind nicht so meine Stärke haha^^

    Ich werde zuhause es mal versuchen, den String mit split('/') in ein Array zu verfrachten und dann jeweils, die einzelnen Strings im Array zu prüfen.

    Danke für die Idee, ich werde dann berichten obs geklappt hat ;)

  • Laut dem hier - http://www.mediaevent.de/javascript/Jav…g-Methoden.html - kann ich für split() ne regex oder auch einen Teilstring angeben. In meinem Fall würde sich ja "/" als Teilstring anbieten.
    Mit explode müsste man das ja Serverseitig sein. Ich würde das aber schon gern dem client mitteilen bevor er das Formular abschickt ;)

    Also ich habe mich mal daran versucht:


    Das jetzt erstmal zum Testen. Meiner Meinung nach müsste er ja wenn ich jetzt als teststring = 22-22/22-22//, überall etwas rauskommen.
    Er spuckt aber nur aus:

    Code
    "22-22/22-22//"
    Array [ "22-22", "22-22", "", "" ]
    "2" 
    ""
    ""
    ""
    ""
    ""

    Löscht er den Rest nach .charAt() ? Ich kann momentan noch keine Fehler entdecken.

  • Was spricht gegen etwas ala

    JavaScript
    var testarray = teststring.split('/');
    for (var i = 0; i < testarray.length; i++;) {
        testarray[i] = testarray[i].split('-');
    }


    ?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!