Input-Feld Value auslesen und auswerten ob korrekt

  • Hi, :)


    Ich hab ein Input-Feld, dass immer ausgefüllt werden muss und dies immer mit dem gleichen Schema.


    Am Anfang muss immer (CHE-123.456.789) CHE + 3 Ziffern + . + 3 Ziffern + . + 3 Ziffern stehen.

    Wenn dies nicht der Fall ist soll eine Fehlermeldung ausgegeben werden.

    Wie kann ich dies so prüfen?

    Mit regex?


    Danke für eure Antworten! :)

  • So etwas wird von der Formularvalidierung unterstützt und benötigt zunächst kein Javascript. Informiere dich darüber. Dabei kannst Du ein Pattern in Form einer Regex angeben. In deinem Fall wird die relativ einfach sein:

    Code
    1. /\(CHE-123\.456\.789\) CHE \d{3}\.\d{3}\.\d{3}/

    Je nachdem, wie und wann Du die Fehlermeldung ausgeben willst, kann es sein, dass Du zusätzlich Javasript benötigst.

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Sempervivum ()

  • So etwas wird von der Formularvalidierung unterstützt und benötigt zunächst kein Javascript. Informiere dich darüber. Dabei kannst Du ein Pattern in Form einer Regex angeben. In deinem Fall wird die relativ einfach sein:

    Code
    1. /\(CHE-123\.456\.789\) CHE \d{3}\.\d{3}\.\d{3}/

    Je nachdem, wie und wann Du die Fehlermeldung ausgeben willst, kann es sein, dass Du zusätzlich Javasript benötigst.

    Vielen Dank für diesen guten Input!

    Wird dies über "pattern" gefiltert?


    Danke und Gruss! :)

  • Kleine Anmerkung am Rande:


    Es ist häufig besser, sich beim Punkto Sicherheit und Co nicht auf den Browser zu verlassen.


    Bei einer reinen Frontend-Anwendung kann man das mal streifen lassen, aber spätestens wenn du die Daten auf deinem Server verarbeitest, musst du eine weitere Sicherheitsebene einbauen. Da kann man sich nicht auf die Frontend-Validierung verlassen, insbesondere nicht die HTML5-Variante.

  • Trifft zu, verlässliche Quellen weisen darauf auch hin, z. B. hier:

    https://wiki.selfhtml.org/wiki…alidierung_von_Formularen

    Okey, nochmals Danke für die super Hilfe!

    Aber irgendwie funktioniert dieser Regex wo du in einem vorherigen Kommentar gepostet hat nicht?

    Es soll wie diese Variante CHE \d{3}\.\d{3}\.\d{3}/ etwa sein also man kann beliebige 3 Zahlen eingeben nur CHE und die Punkte müssen fix kommen

    Kannst du mir da helfen?


    Danke und Gruss

  • OK, da habe ich dich wohl falsch verstanden. Dies müsste es sein:

    Code
    1. CHE \d{3}\.\d{3}\.\d{3}

    mit Leerzeichen zwischen CHE und den Ziffern. Wenn kein Leerzeichen, brauchst Du es nur zu löschen.

  • OK, da habe ich dich wohl falsch verstanden. Dies müsste es sein:

    Code
    1. CHE \d{3}\.\d{3}\.\d{3}

    mit Leerzeichen zwischen CHE und den Ziffern. Wenn kein Leerzeichen, brauchst Du es nur zu löschen.

    Danke dir vielmals! :)