Hallo Andreas,
Lies doch mal meine Anleitung
Gutes Tutorial! Hat sich sehr schön gelesen und die Möglichkeit, dass man das gelesene gleich ausprobieren kann ist genial.
Nur versteh ich die Funktionsweise eine RE scheinbar immer noch nicht... ich hab irgendwo noch einen Denkfehler drin, den mir auch Dein Tutorial nicht austreiben konnte.
Ich hab mir zum probieren mal folgendes konstruiert:
var Vornamestr = document.formular.vorname.value;
var regexEinName = /[a-zA-ZÀ-ÖØ-öø-ž,- ]/;
alert(Vornamestr);
var m = Vornamestr.match(/[a-zA-ZÀ-ÖØ-öø-ž,- ]/);
alert ("match ist dann " + m);
var s = Vornamestr.search(/[a-zA-ZÀ-ÖØ-öø-ž,- ]/);
alert ("search ist dann " + s);
var t = regexEinName.test(Vornamestr);
alert ("und test ist dann " + t);
Für "Jörg" bekomme ich zurück: m = J; s = 0; t = true;
Erwartet hätte ich: m = "Jörg"; s = 0 (bzw. 2); t = true;
Für "J+rg" bekomme ich das gleiche zurück wie für "Jörg" (m = J; s = 0; t = true;).
Erwartet hätte ich: m = "Jrg"; s = -1 (bzw. 1); t = false;
Kannst Du mir bitte sagen, warum die RE nur auf das erste Zeichen wirkt (bzw. warum zumindest in meinem Verständnis dieser Eindruck entsteht) und wie ich es formulieren muss, dass jedes Zeichen verglichen wird.
(Ursprünglich hatte ich das ja mal so gelöst...
var laenge = document.formular.vorname.value.length;
for (i; i < laenge; i++) {
if (!(document.formular.vorname.value.charAt(i).match(/[-a-zA-Z...usw...]/))) {usw;}
...und da war die Welt noch in Ordnung..., bis mir dann jemand, der schon programmiert hat, bevor ich auf der Welt war gesagt hat, dass ich die Schleife doch gar nicht brauche)
Vielen Dank und viele Grüße
Michael