Reguläre Ausdrücke - schwierige Abfrage

  • Hallo Leute,


    wir sind gerade an einem Punkt angelangt, an dem wir Hilfe brauchen!


    Wir wollen per Javascript Formulareingaben direkt überprüfen lassen. E-Mail haben wir fertig, doch der Vorname und Nachname ist schwierig!


    Welchen Ausdruck brauche ich, um zu überprüfen, ob in einem String


    1. nur alle Buchstaben (auch ä, ö, ü, á, à, é, è, ú, ù, í... und so weiter) + Bindestrich oder Leerzeichen vorkommen
    2. ob der Name länger als 1 Zeichen ist


    Wie kann man das umsetzen?

  • das wäre jetzt meine erste Idee:
    ist aber nicht ideal
    !/[^A-Za-zÄÖÜäöü\- ]/.test('Mein Name');

  • Also meinst du so:


    JavaScript
    1. if(![^A-Za-zÄÖÜäöü\-]/.test('Mein Name')) { alert("name enthält nur buchstaben oder minus");}
  • ja genau jetzt habe ich aber noch eine bessere Variante glaube ich :)


    JavaScript
    1. if(/^[A-Za-zÄÖÜäöü\- ]{2,20}$/.test('mein name')){
    2. alert("name enthält nur buchstaben oder minus oder Leerzeichen und hat mehr als 1 Zeichen aber weniger als 21");
    3. }



    was jetzt natürlich noch blöd ist der user kann am Anfang und ende noch Leerzeichen machen was denke ich nicht erwünscht ist.
    auch sollte nur ein Leerzeichen hintereinander verwendet werden dürfen



    um withespace am anfang und ende zu entfernen emfehle ich trim()
    und um zu checken ob mehr als 1 withespaces hintereinander kommt könnte man /\s{2}/ verwenden...
    wie man das mit einen einzigen regulären ausdruck schaffen könnte... da bin ich überfordert

    Dieser Beitrag wurde bereits 3 Mal editiert, zuletzt von Roland ()

  • Das sollte man auch nicht mit einem einzigen machen - lieber mehrere.
    Erstens kann man so Fehler im Code schneller finden, zweitens kann man dem User differenziertere Fehlermeldungen geben.


    lg

  • Ja aber das ist dann noch schwieriger umzusetzen. Vor allen Dinge weiß ich nicht in welcher Reihenfolge das abgefragt werden soll?! :D

  • nacheinander ist echt leichter ;)

    Dieser Beitrag wurde bereits 4 Mal editiert, zuletzt von Roland ()

  • Das sollte man auch nicht mit einem einzigen machen - lieber mehrere.
    Erstens kann man so Fehler im Code schneller finden, zweitens kann man dem User differenziertere Fehlermeldungen geben.


    lg


    Meine Meinung =)
    Pack doch alle Fehler in var err.
    Wenn var err am Ende nicht leer ist, gibts Du alle Meldungen gleichzeitig aus.


    btw - warum eigtl mit JS ? Man spart Ressourcen, da der Browser die "Vorarbeit" macht,
    aber wenn es um die Sicherheit geht, sollte aufm Server doch noch mal gefiltert werden.