Überprüfen ob nur Buchstaben/Zahlen eingegeben

Hi!

Ich habe ein Formular, dass ich mittels JavaScript auf korrekte Eingabe überprüfen will. Beim Vor- und Nachname Eingabefeld möchte ich überprüfen ob nur Buchstaben eingegeben worden sind. Beim Alter ob es eine positive ganze Zahl ist und die Telefonnummer soll aus folgenden Zeichen bestehen: 0123456789-+/.;()
Die E-Mail Adresse soll ein @ enthalten und mindestens einen darauf folgenden Punkt.

Ich hab schon ein bisschen gegoogelt aber bis jetzt auf noch nichts brauchbares gestoßen … Ich hoffe ihr könnt mir weiterhelfen.

LG
Franz

Hallo

Ich habe ein Formular, dass ich mittels JavaScript auf
korrekte Eingabe überprüfen will. Beim Vor- und Nachname
Eingabefeld möchte ich überprüfen ob nur Buchstaben eingegeben
worden sind. Beim Alter ob es eine positive ganze Zahl ist und
die Telefonnummer soll aus folgenden Zeichen bestehen:
0123456789-+/.;()
Die E-Mail Adresse soll ein @ enthalten und mindestens einen
darauf folgenden Punkt.

Wie weit bist Du denn mit Deinem Formular?
Wie sieht es denn aus? Was hast Du schon
probiert?

Grüße

CMБ

Hallo CMБ!

Das Formular hab ich schon. Es besteht aus folgenden Teilen:

-Vorname (Eingabefeld)
-Nachname (Eingabefeld)
-Geschlecht (2 Radio Buttons)
-Alter (Eingabefeld)
-E-Mail (Eingabefeld)
-Tel.Nr. (Eingabefeld)
-Hobby (Checkbox)
-Berufsgruppe (Auswahlliste)

Ich hab es schon geschafft zu überprüfen ob irgend etwas nicht ausgefüllt worden ist. Aber bei den obigen gestellten Fragen habe ich keine Ahnung. Ok ein @ kriege ich mit indexof, aber wie ich das genau mache das ein . danach ist habe ich noch nicht probiert. Ich will Schritt für Schritt vorgehen. Für die positive Zahl kann ich ja fragen ob sie zwischen 1 und 130 liegt. Aber vielleicht gibt es ja da eine schönere Lösung.

Also wie überprüfe ich ob Vor- und Nachname nur aus Buchstaben bestehen?

Grüße
Franz

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Ich hab es schon geschafft zu überprüfen ob irgend etwas nicht
ausgefüllt worden ist. Aber bei den obigen gestellten Fragen
habe ich keine Ahnung. Ok ein @ kriege ich mit indexof, aber
wie ich das genau mache das ein . danach ist habe ich noch
nicht probiert.

Mit regular expressions.
Wenn du es ganz genau machen willst, nimm diese hier:
http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html
Wenn du nicht so pedantisch bist, suche nach
regex for email validation javascript
oder so, und du findest haufenweise Tipps.

Ich will Schritt für Schritt vorgehen.

Dann lerne regexes, das hilft ungemein :wink:

Für die
positive Zahl kann ich ja fragen ob sie zwischen 1 und 130
liegt. Aber vielleicht gibt es ja da eine schönere Lösung.

Positive, ganze Zahlen passen auf die Regex \d+

Also wie überprüfe ich ob Vor- und Nachname nur aus Buchstaben
bestehen?

wenn sie auf ^[a-zA-Z]$ passen, bestehen sie nur aus Buchtstaben.

Hi Moritz!

wenn sie auf ^[a-zA-Z]$ passen, bestehen sie nur aus
Buchtstaben.

Kann ich irgendwie nur den deutschen Zeichensatz für Buchstaben auswählen? Ich hab schon ein bisschen rumgesucht und weiß jetzt mehr über regexp. Aber ich finde nichts dafür.

Hier können keine öäß usw. eingegeben werden. Oder was ist mit à und á? Oder wenn jemand - und ’ in seinem Namen drinnen hat? Muss ich die extra angeben? Wie kann ich Unicode ohne Zahlen auswählen?

Das nächste was dorthin kommt ist das:
if(!formular.vorname.value.match(/^[a-z|A-Z|ö|ä|ü|Ö|Ä|Ü|ß]+$/)

Obwohl das nicht funktioniert …

Danke für deine Hilfe!

LG
Franz

Das nächste was dorthin kommt ist das:
if(!formular.vorname.value.match(/^[a-z|A-Z|ö|ä|ü|Ö|Ä|Ü|ß]+$/)

Obwohl das nicht funktioniert …

Jetzt funktionierts:
if(!formular.vorname.value.match(/^[a-zA-zöäüßÖÄÜ]+$/))

Aber eine andere Möglichkeit außer regexp gibt es nicht oder?

Hallo,

Das nächste was dorthin kommt ist das:
if(!formular.vorname.value.match(/^[a-z|A-Z|ö|ä|ü|Ö|Ä|Ü|ß]+$/)

Obwohl das nicht funktioniert …

Jetzt funktionierts:
if(!formular.vorname.value.match(/^[a-zA-zöäüßÖÄÜ]+$/))

sieht besser aus.

Aber eine andere Möglichkeit außer regexp gibt es nicht oder?

Naja, Zeichenweise durchlaufen und eine Liste erlaubter Zeichen haben geht schon, ist aber nicht so schön.
Hast du mal probiert, ob \w auch Umlaute und Buchstaben mit Akzenten matched?

Unicode-Zeichen kannst mit \uXXXX matchen, wobei XXXX ein vierstelliger hexadezimalausdruck ist.

Ansonsten empfehle ich, nicht zu viel Energie auf die Clientseitige Inputvalidierung zu verwenden, letztendlich musst du serverseitig auch noch mal validiern - da muss es dann richtig funktionieren.

Grüße,
Moritz

Hi Moritz!

\w führt leider nicht zum gewünschten Ergebnis. Hab jetzt ein paar Zeichen zu den erlaubten hinzugefügt. Aber es ist extrem aufwändig. Ich hab zwar eine Unicode Tabelle gefunden, aber ich muss händisch (also mit TR) alles nach HEX umrechnen. Mittlerweile habe ich es aufgegeben, da ich noch ein paar andere Sachen zu tun habe.

Die clientseitige Validierung ist deshalb für mich so wichtig, da bei mir ansonsten die „Sonderzeichen“ nicht akzeptiert werden. D.h. der User müsste z.B. ae statt ä eingeben usw.

Trotzdem vielen Dank für deine Hilfe!

Wenn du noch Lust hast, kannst du ja bei meinem neuen Thread mithelfen … :wink:

Ich wünsch dir noch frohe Ostern & einen schönen Abend!

LG
Franz